エラーが発生したBashの行番号をどのように見つけますか?
例
必要なものを説明するために、行番号を使用して次の簡単なスクリプトを作成します。スクリプトはファイルをコピーします
cp $file1 $file2
cp $file3 $file4
cp
コマンドの1つが失敗すると、関数はexit 1で終了します。エラーを行番号(たとえば、8または12)とともに出力する機能を関数に追加したいと思います。
これは可能ですか?
サンプルスクリプト
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
および/またはset -v
を使用して、実行された内容をトレースできます。正確にはあなたが求めたものではありませんが、おそらく役に立つでしょう。