10 kasulikku nõuannet tõhusate Bash-skriptide kirjutamiseks Linuxis
süsteemiadministraator ülesannete automatiseerimiseks, uute lihtsate utiliitide/tööriistade väljatöötamiseks, et mainida vaid mõnda.
Selles artiklis jagame 10 kasulikku ja praktilist nõuannet tõhusate ja usaldusväärsete bash-skriptide kirjutamiseks ning need sisaldavad järgmist:
1. Kasutage skriptides alati kommentaare
See on soovitatav tava, mida rakendatakse mitte ainult shelliskriptide, vaid ka igasuguse muu programmeerimise puhul. Kommentaaride kirjutamine skripti abil aitab teil või mõnel teisel skripti läbi vaadata, mida skripti erinevad osad teevad.
Alustuseks määratakse kommentaarid märgi #
abil.
#TecMint is the best site for all kind of Linux articles
2. Tehke skriptist väljumine, kui see ei õnnestu
Mõnikord võib bash jätkata skripti täitmist isegi siis, kui teatud käsk ebaõnnestub, mõjutades seeläbi ülejäänud skripti (võib lõpuks põhjustada loogilisi vigu). Skripti väljumiseks käsu nurjumisel kasutage allolevat rida:
#let script exit if a command fails set -o errexit OR set -e
3. Tehke skriptist väljumine, kui Bash kasutab deklareerimata muutujat
Bash võib proovida kasutada ka deklareerimata skripti, mis võib põhjustada loogikavea. Seetõttu kasutage järgmist rida, et anda bashile skriptist väljumine, kui ta üritab deklareerimata muutujat kasutada:
#let script exit if an unsed variable is used set -o nounset OR set -u
4. Kasutage muutujate võrdlemiseks tsitaate
Topelt jutumärkide kasutamine viitamise ajal (muutuja väärtuse kasutamine) aitab ära hoida sõnade lõhestamist (tühimärgi osas) ja tarbetut lobisemist (metamärkide tuvastamine ja laiendamine).
Vaadake allolevat näidet:
#!/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
Salvestage fail ja väljuge, seejärel käivitage see järgmiselt:
$ ./names.sh
5. Kasutage skriptide funktsioone
Välja arvatud väga väikesed skriptid (mõne koodireaga), pidage alati meeles, et kasutage funktsioone koodi moduleerimiseks ning skriptide loetavamaks ja korduvkasutatavamaks muutmiseks.
Funktsioonide kirjutamise süntaks on järgmine:
function check_root(){ command1; command2; } OR check_root(){ command1; command2; }
Ühe rea koodi jaoks kasutage iga käsu järel lõpetamismärke järgmiselt:
check_root(){ command1; command2; }
6. Stringi võrdlusteks kasutage == asemel =
Pange tähele, et ==
on =
sünonüüm, seetõttu kasutage stringide võrdlemiseks ainult ühte =
, näiteks:
value1=”linux-console.net” value2=”fossmint.com” if [ "$value1" = "$value2" ]
7. Kasutage asendamiseks pärandi ‘käsu’ asemel käsku $(command)
Käskude asendamine asendab käsu väljundiga. Kasutage käskude asendamiseks tagaklausete \\ "command \\"
asemel & # 36 (command)
.
Seda soovitab isegi shellchecki tööriist (näitab hoiatusi ja soovitusi shelliskriptide jaoks). Näiteks:
user=`echo “$UID”` user=$(echo “$UID”)
8. Kasutage staatiliste muutujate deklareerimiseks kirjutuskaitstud
Staatiline muutuja ei muutu; selle väärtust ei saa muuta, kui see on skriptis määratletud:
readonly passwd_file=”/etc/passwd” readonly group_file=”/etc/group”
9. Keskkonna muutujate jaoks kasutage suurtähti ja kohandatud muutujate jaoks väiketähti
Kõik bashi keskkonnamuutujad on nimetatud suurtähtedega, seetõttu kasutage muutujate nimede konfliktide vältimiseks kohandatud muutujate nimetamiseks väiketähti:
#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. Tehke pikkade skriptide jaoks alati silumine
Kui kirjutate tuhandete koodiridadega bash-skripte, võib vigade leidmine muutuda õudusunenäoks. Asjade hõlpsaks parandamiseks enne skripti käivitamist tehke mõni silumine. Selle vihje õppimiseks lugege läbi allpool toodud juhendid:
- Kuidas lubada Shelli skripti silumisrežiim Linuxis
- Kuidas süntaksikontrolli režiimi silumisrežiimi kontrollida shelliskriptides
- Kuidas Shell-skriptis käskude täitmist jälgida Shelli jälitamisega
See on kõik! Kas teil on veel mõnda parimat bashi skriptimise tava, mida jagada? Kui jah, siis kasutage selleks allolevat kommentaarivormi.