10 Nëtzlech Tipps fir effektiv Bash Scripten op Linux ze schreiwen


Systemadministratioun fir Aufgaben ze automatiséieren, nei einfach Utilities/Tools z'entwéckelen fir nëmmen e puer ze nennen.

An dësem Artikel wäerte mir 10 nëtzlech a praktesch Tipps deelen fir effektiv an zouverlässeg Bash Scripten ze schreiwen a si enthalen:

1. Benotzt ëmmer Kommentaren an Scripten

Dëst ass eng empfohlene Praxis déi net nëmme fir Shell-Skript applizéiert gëtt, awer all aner Aarte vu Programméierung. Kommentaren an engem Skript schreiwen hëlleft Iech oder soss en aneren duerch Äert Skript ze verstoen wat déi verschidden Deeler vum Skript maachen.

Fir Ufänger ginn d'Kommentaren mat dem # Zeechen definéiert.

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

2. Maacht e Skriptausgang Wann Ausfall

Heiansdo kann de Bash weider e Skript ausféieren, och wann e bestëmmte Kommando feelt, sou datt de Rescht vum Skript beaflosst (kéint schlussendlech zu logesche Feeler resultéieren). Benotzt d'Linn hei ënnen fir e Skript auszeschléissen wann e Kommando feelt:

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

3. Maacht e Skriptausgang Wann Bash Ondeklaréiert Variabel benotzt

Bash kann och probéieren en net deklaréierten Skript ze benotzen deen e logesche Feeler verursaache kéint. Dofir benotzt déi folgend Zeil fir Bash ze instruéieren fir e Skript ze verloossen wann et probéiert eng net deklaréiert Variabel ze benotzen:

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

4. Benotzt Double Zitater fir Referenz Variablen

D'Benotzung vun duebelen Zitater wärend der Referenz (mat engem Wäert vun enger Variabel) hëlleft d'Wuertspaltung ze vermeiden (betreffend Whitespace) an onnéideg Globbing (Erkennung an Ausdehnung vun Wildcards).

Kuckt d'Beispill hei ënnen:

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

Späichert d'Datei a gitt eraus, da lafen se wéi follegt:

$ ./names.sh

5. Benotzt Funktiounen an Scripten

Ausser fir ganz kleng Scripten (mat e puer Zeilen Code), erënnert ëmmer un Funktiounen ze benotzen fir Äre Code ze modulariséieren an Scripte méi liesbar a wiederverwendbar ze maachen.

D'Syntax fir Schreiffunktiounen ass wéi follegt:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Fir eenzel Zeilcode benotzt Terminatiounszeechen no all Kommando wéi dëst:

check_root(){ command1; command2; }

6. Benotzt = amplaz == fir String Vergläicher

Notéiert datt == e Synonym fir = ass, benotzt dofir nëmmen een eenzegen = fir Stringvergläicher, zum Beispill:

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

7. Benotzt $(Kommando) anstatt legacy 'Kommando' fir Ersatz

Kommando Ersatz ersetzt e Kommando mat sengem Ausgang. Benotzt & # 36 (Kommando) amplaz Réckquote \Kommando\ fir Kommandoenaustausch.

Dëst gëtt och vum Shellcheck-Tool recommandéiert (weist Warnungen a Virschléi fir Shell-Skripte). Zum Beispill:

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

8. Benotzt Read-nëmmen fir statesch Variablen ze deklaréieren

Eng statesch Variabel ännert sech net; säi Wäert kann net geännert ginn wann et an engem Skript definéiert ass:

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

9. Benotzt Grousse Nimm fir ENVIRONMENT Variablen a kleng Buschtawen fir Custom Variablen

All Bash Ëmfeld Variablen gi mat grousse Buschtawen benannt, benotzt also kleng Buschtawen fir Är personaliséiert Variabelen ze nennen fir Variabel Numm Konflikter ze vermeiden:

#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. Ëmmer Leeschtunge Debugging fir laang Scripten

Wann Dir Bash Scripte mat Dausende vu Zeilen Code schreift, Fehler ze fannen kënnen en Albtraum ginn. Fir d'Saachen einfach ze fixéieren ier Dir e Skript ausféiert, maacht e puer Debugging. Master dësen Tipp andeems Dir d'Guiden hei ënnen liest:

  1. Wéi aktivéiert de Shell Script Debugging Mode am Linux
  2. Wéi d'Syntaxprüfung Debugging Modus a Shell Scripten ausféieren
  3. Wéi d'Ausféierung vu Kommandoen am Shell Skript mat Shell Tracing verfollegen

Dat ass alles! Hutt Dir aner bescht Bash Scripting Praktiken fir ze deelen? Wann jo, benotzt dann de Kommentarformular hei ënnen fir dat ze maachen.