Como você encontra o número da linha no Bash onde ocorreu um erro?
Exemplo
Crio o seguinte script simples com números de linha para explicar o que precisamos. O script copiará arquivos de
cp $file1 $file2
cp $file3 $file4
Quando um dos cp
comandos falha, a função sai com a saída 1 . Queremos adicionar a capacidade da função de também imprimir o erro com o número da linha (por exemplo, 8 ou 12).
Isso é possível?
Script de amostra
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 / ou set -v
rastrear o que foi executado. Não é exatamente o que você pediu, mas provavelmente será útil também.