10 Handige tips voor het schrijven van effectieve Bash-scripts in Linux
Shell-scripting is de gemakkelijkste vorm van programmeren die je in Linux kunt leren/doen. Meer nog, het is een vereiste vaardigheid voor systeembeheer voor het automatiseren van taken, het ontwikkelen van nieuwe eenvoudige hulpprogramma's/tools, om er maar een paar te noemen.
In dit artikel delen we 10 nuttige en praktische tips voor het schrijven van effectieve en betrouwbare bash-scripts, waaronder:
1. Gebruik altijd opmerkingen in scripts
Dit is een aanbevolen praktijk die niet alleen wordt toegepast op shell-scripting, maar op alle andere vormen van programmeren. Door commentaar in een script te schrijven, kunt u of iemand anders die uw script doorneemt, begrijpen wat de verschillende delen van het script doen.
Om te beginnen worden opmerkingen gedefinieerd met het #
teken.
#TecMint is the best site for all kind of Linux articles
2. Maak een scriptafsluiting wanneer dit mislukt
Soms kan bash doorgaan met het uitvoeren van een script, zelfs als een bepaald commando mislukt, waardoor de rest van het script wordt beïnvloed (wat uiteindelijk kan resulteren in logische fouten). Gebruik de onderstaande regel om een script af te sluiten wanneer een opdracht mislukt:
#let script exit if a command fails
set -o errexit
OR
set -e
3. Maak een script-exit wanneer Bash een niet-gedeclareerde variabele gebruikt
Bash kan ook proberen een niet-gedeclareerd script te gebruiken, wat een logische fout zou kunnen veroorzaken. Gebruik daarom de volgende regel om bash te instrueren een script te verlaten wanneer het probeert een niet-gedeclareerde variabele te gebruiken:
#let script exit if an unsed variable is used
set -o nounset
OR
set -u
4. Gebruik dubbele aanhalingstekens om naar variabelen te verwijzen
Het gebruik van dubbele aanhalingstekens tijdens het verwijzen (met behulp van een waarde van een variabele) helpt woordsplitsing (met betrekking tot witruimte) en onnodige globbing (herkennen en uitbreiden van jokertekens) te voorkomen.
Bekijk het onderstaande voorbeeld:
#!/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
Sla het bestand op, sluit het af en voer het vervolgens als volgt uit:
./names.sh
5. Gebruik functies in scripts
Behalve voor zeer kleine scripts (met een paar regels code), moet u er altijd aan denken om functies te gebruiken om uw code te modulariseren en scripts leesbaarder en herbruikbaar te maken.
De syntaxis voor het schrijven van functies is als volgt:
function check_root(){
command1;
command2;
}
OR
check_root(){
command1;
command2;
}
Voor code met één regel gebruikt u afsluittekens na elke opdracht, zoals deze:
check_root(){ command1; command2; }
6. Gebruik=in plaats van == voor stringvergelijkingen
Houd er rekening mee dat ==
een synoniem is voor =
. Gebruik daarom slechts één =
voor tekenreeksvergelijkingen, bijvoorbeeld:
value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]
7. Gebruik $ (commando) in plaats van het oude ‘commando’ voor Vervanging
Commandovervanging vervangt een commando door de uitvoer ervan. Gebruik $ (command)
in plaats van backquotes `command`
voor commandovervanging.
Dit wordt zelfs aanbevolen door de shellcheck-tool (toont waarschuwingen en suggesties voor shell-scripts). Bijvoorbeeld:
user=`echo “$UID”`
user=$(echo “$UID”)
8. Gebruik alleen-lezen om statische variabelen te declareren
Een statische variabele verandert niet; de waarde ervan kan niet worden gewijzigd als deze eenmaal in een script is gedefinieerd:
readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”
9. Gebruik hoofdletters voor ENVIRONMENT-variabelen en kleine letters voor aangepaste variabelen
Alle bash-omgevingsvariabelen worden benoemd met hoofdletters. Gebruik daarom kleine letters om uw aangepaste variabelen een naam te geven om conflicten met variabelenamen te voorkomen:
#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. Voer altijd foutopsporing uit voor lange scripts
Als je bash-scripts schrijft met duizenden regels code, kan het vinden van fouten een nachtmerrie worden. Om dingen eenvoudig op te lossen voordat u een script uitvoert, voert u wat foutopsporing uit. Beheers deze tip door de onderstaande handleidingen te lezen:
- Hoe u de foutopsporingsmodus van Shell Script in Linux kunt inschakelen
- Hoe syntaxis uit te voeren De foutopsporingsmodus controleren in Shell-scripts
- Hoe u de uitvoering van opdrachten in Shell Script kunt traceren met Shell Tracing
Dat is alles! Heb je nog andere beste bash-scriptingpraktijken om te delen? Zo ja, gebruik dan het onderstaande reactieformulier om dat te doen.