Wyszukiwanie w witrynie

10 przydatnych wskazówek dotyczących pisania skutecznych skryptów Bash w systemie Linux


Skrypty powłoki to najłatwiejsza forma programowania, jakiej możesz się nauczyć/wykonać w systemie Linux. Co więcej, jest to wymagana umiejętność w administrowaniu systemem w celu automatyzacji zadań, tworzenia nowych prostych narzędzi/narzędzi, żeby wymienić tylko kilka.

W tym artykule podzielimy się 10 przydatnymi i praktycznymi wskazówkami dotyczącymi pisania skutecznych i niezawodnych skryptów bashowych, a wśród nich znajdują się:

1. Zawsze używaj komentarzy w skryptach

Jest to zalecana praktyka, którą można zastosować nie tylko w skryptach powłoki, ale we wszystkich innych rodzajach programowania. Zapisywanie komentarzy w skrypcie pomaga Tobie lub innej osobie przeglądającej skrypt zrozumieć, co robią różne części skryptu.

Na początek komentarze definiuje się za pomocą znaku #.

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

2. Zakończ skrypt w przypadku niepowodzenia

Czasami bash może kontynuować wykonywanie skryptu, nawet jeśli określone polecenie nie powiedzie się, wpływając w ten sposób na resztę skryptu (może ostatecznie skutkować błędami logicznymi). Użyj poniższego wiersza, aby wyjść ze skryptu, gdy polecenie nie powiedzie się:

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

3. Zakończ skrypt, gdy Bash używa niezadeklarowanej zmiennej

Bash może także próbować użyć niezadeklarowanego skryptu, co może spowodować błąd logiczny. Dlatego użyj następującego wiersza, aby poinstruować basha, aby opuścił skrypt, gdy ten spróbuje użyć niezadeklarowanej zmiennej:

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

4. Używaj podwójnych cudzysłowów do odwoływania się do zmiennych

Używanie podwójnych cudzysłowów podczas odwoływania się (używanie wartości zmiennej) pomaga zapobiegać dzieleniu wyrazów (w odniesieniu do białych znaków) i niepotrzebnemu globowaniu (rozpoznawanie i rozwijanie symboli wieloznacznych).

Sprawdź poniższy przykład:

#!/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

Zapisz plik i wyjdź, a następnie uruchom go w następujący sposób:

./names.sh

5. Używaj funkcji w Skryptach

Z wyjątkiem bardzo małych skryptów (z kilkoma linijkami kodu), zawsze pamiętaj o używaniu funkcji w celu modularyzacji kodu i uczynienia skryptów bardziej czytelnymi i nadającymi się do ponownego użycia.

Składnia pisania funkcji jest następująca:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

W przypadku kodu jednowierszowego użyj znaków zakończenia po każdym poleceniu w następujący sposób:

check_root(){ command1; command2; }

6. Użyj=zamiast == dla porównań ciągów

Pamiętaj, że == jest synonimem =, dlatego do porównań ciągów używaj tylko jednego =, na przykład:

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

7. Użyj &36 (polecenie) zamiast starszego „polecenie” dla podstawienia

Podstawienie polecenia zastępuje polecenie jego wyjściem. Użyj &36 (polecenie) zamiast cudzysłowów `polecenie` w celu podstawienia polecenia.

Jest to zalecane nawet przez narzędzie Shellcheck (pokazuje ostrzeżenia i sugestie dotyczące skryptów powłoki). Na przykład:

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

8. Użyj opcji Tylko do odczytu, aby zadeklarować zmienne statyczne

Zmienna statyczna nie zmienia się; jego wartości nie można zmienić po zdefiniowaniu jej w skrypcie:

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

9. Używaj wielkich liter dla zmiennych środowiskowych i małych liter dla zmiennych niestandardowych

Wszystkie zmienne środowiskowe bash są nazywane wielkimi literami, dlatego używaj małych liter do nazywania zmiennych niestandardowych, aby uniknąć konfliktów w nazwach zmiennych:

#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. Zawsze wykonuj debugowanie długich skryptów

Jeśli piszesz skrypty basha składające się z tysięcy linii kodu, znalezienie błędów może stać się koszmarem. Aby łatwo naprawić błędy przed wykonaniem skryptu, przeprowadź debugowanie. Opanuj tę wskazówkę, czytając poniższe przewodniki:

  1. Jak włączyć tryb debugowania skryptu powłoki w systemie Linux
  2. Jak wykonać tryb debugowania sprawdzania składni w skryptach powłoki
  3. Jak śledzić wykonywanie poleceń w skrypcie powłoki za pomocą śledzenia powłoki

To wszystko! Czy możesz podzielić się innymi najlepszymi praktykami tworzenia skryptów w języku bash? Jeśli tak, skorzystaj z poniższego formularza komentarza, aby to zrobić.