Zoeken op website

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:

  1. Hoe u de foutopsporingsmodus van Shell Script in Linux kunt inschakelen
  2. Hoe syntaxis uit te voeren De foutopsporingsmodus controleren in Shell-scripts
  3. 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.