Ricerca nel sito web

10 suggerimenti utili per scrivere script Bash efficaci in Linux


Lo scripting della shell è la forma più semplice di programmazione che puoi imparare/fare in Linux. Inoltre, è una competenza richiesta per l'amministrazione del sistema per automatizzare le attività, sviluppare nuove semplici utilità/strumenti solo per citarne alcuni.

In questo articolo condivideremo 10 suggerimenti utili e pratici per scrivere script bash efficaci e affidabili e includono:

1. Utilizzare sempre i commenti negli script

Questa è una pratica consigliata che non viene applicata solo allo scripting di shell ma a tutti gli altri tipi di programmazione. Scrivere commenti in uno script aiuta te o qualcun altro a leggere lo script a capire cosa fanno le diverse parti dello script.

Per cominciare, i commenti vengono definiti utilizzando il segno #.

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

2. Esci dallo script quando fallisce

A volte bash può continuare a eseguire uno script anche quando un determinato comando fallisce, influenzando così il resto dello script (potrebbe eventualmente provocare errori logici). Utilizza la riga seguente per uscire da uno script quando un comando fallisce:

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

3. Esegui l'uscita dello script quando Bash utilizza una variabile non dichiarata

Bash potrebbe anche provare a utilizzare uno script non dichiarato che potrebbe causare un errore logico. Pertanto utilizza la seguente riga per indicare a bash di uscire da uno script quando tenta di utilizzare una variabile non dichiarata:

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

4. Utilizzare le virgolette doppie per fare riferimento alle variabili

Usare le virgolette doppie durante il riferimento (utilizzando il valore di una variabile) aiuta a prevenire la suddivisione delle parole (per quanto riguarda gli spazi bianchi) e il globbing non necessario (riconoscimento ed espansione dei caratteri jolly).

Guarda l'esempio qui sotto:

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

Salvare il file ed uscire, quindi eseguirlo come segue:

./names.sh

5. Utilizzare le funzioni negli script

Fatta eccezione per script molto piccoli (con poche righe di codice), ricorda sempre di utilizzare funzioni per modularizzare il codice e rendere gli script più leggibili e riutilizzabili.

La sintassi per scrivere le funzioni è la seguente:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Per il codice a riga singola, utilizza i caratteri di terminazione dopo ciascun comando in questo modo:

check_root(){ command1; command2; }

6. Utilizzare=invece di == per i confronti tra stringhe

Tieni presente che == è un sinonimo di =, quindi utilizza solo un singolo = per i confronti di stringhe, ad esempio:

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

7. Utilizzare $ (comando) invece del vecchio "comando" per la sostituzione

La sostituzione del comando sostituisce un comando con il suo output. Utilizza $ (comando) invece delle virgolette `command` per la sostituzione dei comandi.

Questo è consigliato anche dallo strumento shellcheck (mostra avvisi e suggerimenti per gli script di shell). Per esempio:

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

8. Utilizzare Sola lettura per dichiarare variabili statiche

Una variabile statica non cambia; il suo valore non può essere modificato una volta definito in uno script:

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

9. Utilizzare nomi maiuscoli per le variabili d'AMBIENTE e minuscoli per le variabili personalizzate

Tutte le variabili di ambiente bash sono denominate con lettere maiuscole, quindi utilizza lettere minuscole per denominare le variabili personalizzate per evitare conflitti di nomi di variabili:

#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. Eseguire sempre il debug per gli script lunghi

Se stai scrivendo script bash con migliaia di righe di codice, trovare errori potrebbe diventare un incubo. Per risolvere facilmente le cose prima di eseguire uno script, esegui un po' di debug. Padroneggia questo suggerimento leggendo le guide fornite di seguito:

  1. Come abilitare la modalità di debug dello script Shell in Linux
  2. Come eseguire la modalità di debug del controllo della sintassi negli script di shell
  3. Come tracciare l'esecuzione dei comandi nello script di shell con Shell Tracing

È tutto! Hai altre migliori pratiche di scripting bash da condividere? Se sì, utilizza il modulo di commento qui sotto per farlo.