10 Suġġerimenti Utli għall-Kitba ta' Skripts Bash Effettivi fil-Linux
amministrazzjoni tas-sistema għall-awtomatizzazzjoni tal-kompiti, l-iżvilupp ta 'utilitajiet/għodod sempliċi ġodda biex insemmu biss ftit.
F'dan l-artikolu, se naqsmu 10 pariri utli u prattiċi għall-kitba ta' skripts bash effettivi u affidabbli u jinkludu:
1. Dejjem Uża Kummenti fl-Iskripts
Din hija prattika rakkomandata li mhix applikata biss għall-shell scripting iżda t-tipi l-oħra kollha ta 'programmazzjoni. Il-kitba ta' kummenti fi skript jgħinek jew lil xi ħadd ieħor għaddej mill-iskrittura tiegħek tifhem x'jagħmlu l-partijiet differenti tal-iskrittura.
Biex nibdew, il-kummenti huma definiti bl-użu tas-sinjal #
.
#TecMint is the best site for all kind of Linux articles
2. Agħmel ħruġ ta 'Script Meta Jfalli
Xi drabi bash jista 'jkompli jesegwixxi script anki meta ċertu kmand ifalli, u b'hekk jaffettwa l-bqija tal-iskript (jista' eventwalment jirriżulta fi żbalji loġiċi). Uża l-linja hawn taħt biex toħroġ minn skript meta kmand ifalli:
#let script exit if a command fails set -o errexit OR set -e
3. Agħmel ħruġ ta 'Script Meta Bash Użi Varjabbli Mhux Iddikjarat
Bash jista' wkoll jipprova juża skript mhux iddikjarat li jista' jikkawża żball loġiku. Għalhekk uża l-linja li ġejja biex tagħti struzzjonijiet lil bash biex joħroġ minn script meta jipprova juża varjabbli mhux iddikjarat:
#let script exit if an unsed variable is used set -o nounset OR set -u
4. Uża Kwotazzjonijiet Doppju għal Varjabbli ta' Referenza
L-użu ta' kwotazzjonijiet doppji waqt ir-referenza (bl-użu ta' valur ta' varjabbli) jgħin biex jipprevjeni l-qsim tal-kliem (dwar l-ispazju abjad) u l-globbing bla bżonn (ir-rikonoxximent u l-espansjoni ta' wildcards).
Ara l-eżempju hawn taħt:
#!/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
Issejvja l-fajl u oħroġ, imbagħad mexxih kif ġej:
$ ./names.sh
5. Uża funzjonijiet fl-Iskripts
Ħlief għal skripts żgħar ħafna (bi ftit linji ta 'kodiċi), dejjem ftakar li tuża funzjonijiet biex timmodularizza l-kodiċi tiegħek u tagħmel l-iskripts aktar leġibbli u li jistgħu jerġgħu jintużaw.
Is-sintassi għall-funzjonijiet tal-kitba hija kif ġej:
function check_root(){ command1; command2; } OR check_root(){ command1; command2; }
Għal kodiċi ta' linja waħda, uża karattri ta' terminazzjoni wara kull kmand bħal dan:
check_root(){ command1; command2; }
6. Uża = minflok == għal Paraguni String
Innota li ==
huwa sinonimu għal =
, għalhekk uża =
waħda biss għal paraguni ta' string, pereżempju:
value1=”linux-console.net” value2=”fossmint.com” if [ "$value1" = "$value2" ]
7. Uża $(kmand) minflok ‘kmand’ wirt għas-Sostituzzjoni
Is-sostituzzjoni tal-kmand tissostitwixxi kmand bl-output tiegħu. Uża $ (kmand)
minflok backquotes \kmand\
għas-sostituzzjoni tal-kmand.
Dan huwa rakkomandat anke permezz ta 'għodda shellcheck (turi twissijiet u suġġerimenti għal skripts shell). Pereżempju:
user=`echo “$UID”` user=$(echo “$UID”)
8. Uża Aqra biss biex Tiddikjara Varjabbli Statiċi
Varjabbli statiku ma jinbidilx; il-valur tiegħu ma jistax jinbidel ladarba jiġi definit fi skript:
readonly passwd_file=”/etc/passwd” readonly group_file=”/etc/group”
9. Uża Ismijiet Uppercase għal Varjabbli AMBJENT u Lowercase għal Varjabbli Custom
Il-varjabbli tal-ambjent bash kollha huma msemmijin b'ittri kbar, għalhekk uża ittri żgħar biex issemmi l-varjabbli tad-dwana tiegħek biex tevita kunflitti tal-ismijiet varjabbli:
#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. Dejjem Agħmel Debugging għal Skripts twal
Jekk qed tikteb skripts bash b'eluf ta 'linji ta' kodiċi, is-sejba ta 'żbalji tista' ssir ħmar il-lejl. Biex tiffissa l-affarijiet faċilment qabel ma tesegwixxi skript, wettaq xi debugging. Ikkontrolla din il-ponta billi taqra l-gwidi pprovduti hawn taħt:
- Kif Tippermetti l-Modalità ta' Debugging Shell Script fil-Linux
- Kif Twettaq il-Modalità ta' Debugging tal-Iċċekkjar tas-Sintassi fi Shell Scripts
- Kif Traċċa l-Eżekuzzjoni ta' Kmandi fi Shell Script b'Shell Tracing
Dak kollox! Għandek xi prattiki oħra tal-aħjar bash scripting x'taqsam? Jekk iva, imbagħad uża l-formola tal-kumment hawn taħt biex tagħmel dan.