シェル スクリプトを作成しrm
、ls
、 などのコマンドをいくつか使用しています。これらのコマンドが失敗した場合に備えて、リターン ステータス '$?' をチェックしています。. しかし、スクリプトに構文エラーがある場合、どうすればエラーステータスを取得できますか? 基本的に、「source」コマンドを使用して、このスクリプトを別のスクリプトから取得します。したがって、ソースのスクリプトに構文エラーがある場合は、それをコンソールに表示したいと思います。そのステータスを取得する方法はありますか?シェルで構文エラーでスクリプトを実行したところ、「missing [」のようなエラーが発生しましたが、実行echo $?
するとステータスとして 0 が返されましたが、これは動作ですか? スクリプトに構文エラーがあるかどうかを確認するにはどうすればよいですか?
1798 次
1 に答える
2
-n
ソースを取得する前に、オプションを使用してシェル スクリプトの構文を確認できます。
bash -n somescript # Works also for sh, ksh, zsh et al.
実際に実行しなくても somescript が構文的に問題ないかどうかがわかります。プログラムで:
if bash -n somescript; then
. somescript
else
printf '%s\n' "Uh-oh, somescript is not syntactically correct." >&2
fi
于 2012-10-09T10:01:17.957 に答える