Bash'te bir hatanın oluştuğu yerdeki satır numarasını nasıl buluyorsunuz?
Misal
Neye ihtiyacımız olduğunu açıklamak için satır numaraları ile aşağıdaki basit komut dosyasını oluşturuyorum. Komut dosyası dosyaları
cp $file1 $file2
cp $file3 $file4
cp
Komutlardan biri başarısız olduğunda, işlev çıkış 1 ile birlikte çıkar . Hatayı satır numarasıyla da yazdırma işlevini eklemek istiyoruz (örneğin, 8 veya 12).
Mümkün mü?
Örnek komut dosyası
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
ve / veya kullanabilirsiniz set -v
. Tam olarak ne istedi değil ama muhtemelen de yararlı olacaktır.