Come si trova il numero di riga in Bash in cui si è verificato un errore?
Esempio
Creo il seguente semplice script con i numeri di riga per spiegare di cosa abbiamo bisogno. Lo script copierà i file da
cp $file1 $file2
cp $file3 $file4
Quando uno dei cp
comandi fallisce, la funzione termina con l' uscita 1 . Vogliamo aggiungere la possibilità alla funzione di stampare anche l'errore con il numero di riga (ad esempio 8 o 12).
È possibile?
Script di esempio
1 #!/bin/bash
2
3
4 function in_case_fail {
5 [[ $1 -ne 0 ]] && echo "fail on $2" && exit 1
6 }
7
8 cp $file1 $file2
9 in_case_fail $? "cp $file1 $file2"
10
11
12 cp $file3 $file4
13 in_case_fail $? "cp $file3 $file4"
14
set -x
e / o set -v
tracciare ciò che è stato eseguito. Non esattamente quello che hai chiesto, ma probabilmente sarà anche utile.