2013-07-06 15 views
6

私は700行以上のシェルスクリプトを継承し、スクリプトを実行したときに実行時にエラーが発生することに気付きました。私は、コンソールに表示行番号のシェルスクリプトのデバッグ

例えばエラーが、私はこのlinkからヒントのset -xとほとんどを使用しようとしました

cat: /Wreck/wreck_module.rb: No such file or directory 

ようなものです、しかし、私は私がなっていたすべての出力はかなりだったことに気づきましたうるさい。

シェルコマンドがゼロ以外のステータスを返す場所の正確な行番号を取得する方法はありますか?

#!/bin/bash 
function trace_line(){ 
    caller 
} 
trap trace_line debug 

、おそらく簡単な分析のための出力をファイルにリダイレクト:

+0

あなたはどんなシェルを使っていますか? –

+0

私はbashシェルを使用しています – tawheed

+0

'bash -vx'を使用してシェルスクリプトを実行してください –

答えて

4

は、デバッグしたいスクリプトの先頭でこれを置きます。

+0

これはどうしますか? 「呼び出し元」は組み込みのシェル機能ですか?編集:[はい、そうです。](http://unix.stackexchange.com/q/19323) –