10 noderīgi padomi efektīvu Bash skriptu rakstīšanai Linux


sistēmas administrēšana uzdevumu automatizēšanai, jaunu vienkāršu utilītu/rīku izstrādei, lai pieminētu tikai dažus.

Šajā rakstā mēs dalīsimies ar 10 noderīgiem un praktiskiem padomiem, kā uzrakstīt efektīvus un uzticamus bash skriptus, un tie ietver:

1. Vienmēr lietojiet komentārus skriptos

Tā ir ieteicama prakse, kas tiek piemērota ne tikai čaulas skriptiem, bet arī visiem citiem programmēšanas veidiem. Komentāru rakstīšana skriptā palīdz jums vai kādam citam iziet jūsu skriptu, lai saprastu, ko dara dažādas skripta daļas.

Iesācējiem komentāri tiek definēti, izmantojot zīmi # .

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

2. Veiciet skripta izeju, kad neizdodas

Dažreiz bash var turpināt izpildīt skriptu pat tad, ja noteikta komanda neizdodas, tādējādi ietekmējot pārējo skriptu (galu galā var rasties loģiskas kļūdas). Izmantojiet zemāk esošo rindu, lai izietu no skripta, kad komanda neizdodas:

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

3. Veiciet skripta izeju, kad Bash izmanto nedeklarētu mainīgo

Bašs var arī mēģināt izmantot nedeklarētu skriptu, kas varētu izraisīt loģisku kļūdu. Tāpēc izmantojiet šo rindiņu, lai uzdotu bash iziet no skripta, kad tas mēģina izmantot nedeklarētu mainīgo:

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

4. Izmantojiet dubultās pēdiņas atsauces mainīgajiem

Divkāršu pēdiņu izmantošana atsauces laikā (izmantojot mainīgā vērtību) palīdz novērst vārdu dalīšanu (attiecībā uz atstarpi) un nevajadzīgu globēšanu (aizstājējzīmju atpazīšanu un paplašināšanu).

Apskatiet tālāk sniegto piemēru:

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

Saglabājiet failu un izejiet, pēc tam palaidiet to šādi:

$ ./names.sh

5. Izmantojiet skriptu funkcijas

Izņemot ļoti mazus skriptus (ar dažām koda rindiņām), vienmēr atcerieties izmantot funkcijas, lai modulētu kodu un padarītu skriptus vieglāk lasāmus un atkārtoti lietojamus.

Funkciju rakstīšanas sintakse ir šāda:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Vienas rindas kodam izmantojiet beigu rakstzīmes pēc katras komandas šādi:

check_root(){ command1; command2; }

6. Stīgu salīdzināšanai izmantojiet =, nevis ==

Ņemiet vērā, ka == ir = sinonīms, tāpēc virkņu salīdzināšanai izmantojiet tikai vienu = , piemēram:

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

7. Aizstāšanai izmantojiet mantoto ‘komandu’ vietā $(komandu)

Komandas aizstāšana aizstāj komandu ar tās izvadi. Izmantojiet & # 36 (komanda) , nevis backquotes \"command \" , lai aizstātu komandu.

To iesaka pat rīks shellcheck (parāda brīdinājumus un ieteikumus čaulas skriptiem). Piemēram:

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

8. Izmantojiet tikai lasāmu, lai deklarētu statiskos mainīgos

Statiskais mainīgais nemainās; tā vērtību nevar mainīt, kad tā ir definēta skriptā:

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

9. Izmantojiet lielo nosaukumu nosaukumus vides mainīgajiem un mazos burtus pielāgotajiem mainīgajiem

Visi bash vides mainīgie tiek nosaukti ar lielajiem burtiem, tāpēc izmantojiet mazos burtus, lai nosauktu pielāgotos mainīgos, lai izvairītos no mainīgo nosaukumu konfliktiem:

#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. Vienmēr veiciet garu skriptu atkļūdošanu

Ja rakstāt bash skriptus ar tūkstošiem koda rindiņu, kļūdu atrašana var kļūt par murgu. Pirms skripta izpildīšanas viegli novērsiet lietas, veiciet atkļūdošanu. Apgūstiet šo padomu, izlasot tālāk sniegtos ceļvežus:

  1. Kā iespējot čaulas skriptu atkļūdošanas režīmu Linux
  2. Kā veikt sintakses atkļūdošanas režīma pārbaudi čaulas skriptos
  3. Kā izsekot komandu izpildi čaulas skriptā ar čaulas izsekošanu

Tas ir viss! Vai jums ir kāda cita labākā bash skriptu veidošanas prakse, ar kuru dalīties? Ja jā, tad izmantojiet zemāk esošo komentāru veidlapu.