Bagaimana Anda menemukan nomor baris di Bash di mana kesalahan terjadi?
Contoh
Saya membuat skrip sederhana berikut dengan nomor baris untuk menjelaskan apa yang kita butuhkan. Script akan menyalin file dari
cp $file1 $file2
cp $file3 $file4
Ketika salah satu cp
perintah gagal maka fungsi akan keluar dengan keluar 1 . Kami ingin menambahkan kemampuan ke fungsi untuk juga mencetak kesalahan dengan nomor baris (misalnya, 8 atau 12).
Apakah ini mungkin?
Contoh skrip
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
dan / atau set -v
untuk melacak apa yang telah dieksekusi. Tidak persis apa yang Anda minta, tetapi mungkin akan membantu juga.