Vyhledávání na webu

10 užitečných tipů pro psaní efektivních Bash skriptů v Linuxu


Shell skriptování je nejjednodušší forma programování, kterou se můžete v Linuxu naučit/dělat. Navíc je to požadovaná dovednost pro správu systému pro automatizaci úloh, vývoj nových jednoduchých utilit/nástrojů, abychom zmínili jen několik.

V tomto článku se podělíme o 10 užitečných a praktických tipů pro psaní efektivních a spolehlivých bash skriptů a mezi ně patří:

1. Vždy používejte komentáře ve skriptech

Toto je doporučený postup, který se nepoužívá pouze pro skriptování shellu, ale i pro všechny ostatní druhy programování. Psaní komentářů do skriptu vám nebo někomu jinému, kdo prochází váš skript, pomůže pochopit, co různé části skriptu dělají.

Pro začátek jsou komentáře definovány pomocí znaku #.

#TecMint is the best site for all kind of Linux articles

2. Proveďte ukončení skriptu, když selže

Někdy může bash pokračovat ve vykonávání skriptu, i když určitý příkaz selže, čímž ovlivní zbytek skriptu (může nakonec vést k logickým chybám). Následující řádek použijte k ukončení skriptu, když příkaz selže:

#let script exit if a command fails
set -o errexit 
OR
set -e

3. Proveďte ukončení skriptu, když Bash používá nedeklarovanou proměnnou

Bash se také může pokusit použít nedeklarovaný skript, který by mohl způsobit logickou chybu. Proto použijte následující řádek k pokynu bash, aby ukončil skript, když se pokusí použít nedeklarovanou proměnnou:

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

4. Použijte dvojité uvozovky k referenčním proměnným

Použití dvojitých uvozovek při odkazování (pomocí hodnoty proměnné) pomáhá předcházet dělení slov (pokud jde o mezery) a zbytečnému globování (rozpoznávání a rozšiřování zástupných znaků).

Podívejte se na příklad níže:

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

Uložte soubor a ukončete jej, poté jej spusťte následovně:

./names.sh

5. Používejte funkce ve skriptech

S výjimkou velmi malých skriptů (s několika řádky kódu) vždy pamatujte na použití funkcí k modularizaci kódu, aby byly skripty čitelnější a znovu použitelné.

Syntaxe pro zápis funkcí je následující:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Pro jednořádkový kód použijte ukončovací znaky po každém příkazu takto:

check_root(){ command1; command2; }

6. Použijte=místo == pro porovnávání řetězců

Všimněte si, že == je synonymem pro =, proto používejte pouze jeden = pro porovnávání řetězců, například:

value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. Použijte $ (příkaz) místo starého ‚příkazu‘ pro substituci

Náhrada příkazu nahradí příkaz jeho výstupem. Pro nahrazení příkazu použijte $ (příkaz) místo zpětných uvozovek `příkaz`.

To je doporučeno i nástrojem shellcheck (zobrazuje varování a návrhy pro skripty shellu). Například:

user=`echo “$UID”`
user=$(echo “$UID”)

8. K deklaraci statických proměnných použijte funkci Pouze pro čtení

Statická proměnná se nemění; jeho hodnotu nelze změnit, jakmile je definována ve skriptu:

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. Používejte názvy velkých písmen pro proměnné PROSTŘEDÍ a malá písmena pro uživatelské proměnné

Všechny proměnné prostředí bash jsou pojmenovány velkými písmeny, proto k pojmenování vlastních proměnných používejte malá písmena, abyste předešli konfliktům názvů proměnných:

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. Vždy provádějte ladění dlouhých skriptů

Pokud píšete bash skripty s tisíci řádky kódu, hledání chyb se může stát noční můrou. Chcete-li věci snadno opravit před spuštěním skriptu, proveďte nějaké ladění. Osvojte si tento tip přečtením níže uvedených průvodců:

  1. Jak povolit režim ladění skriptů Shell v Linuxu
  2. Jak provést kontrolu syntaxe v režimu ladění ve skriptech Shell
  3. Jak sledovat provádění příkazů ve skriptu Shell pomocí funkce Shell Tracing

To je vše! Máte nějaké další nejlepší postupy skriptování bash, o které se chcete podělit? Pokud ano, použijte k tomu níže uvedený formulář pro komentáře.