編集:この質問は重複して表示されます。これは大きな規模では本当かもしれませんが、Kusaranandaによって提供された答えは私の選択をよりよく理解することを可能にしました。
シェルスクリプト内で構文エラーが発生した場合、スクリプトの解釈は必ずしも終了せず、スクリプトの次の行から続行されます。スクリプトを解釈するときにこれらの構文エラーの数をキャプチャする方法はありますか?
私はコンパイルが完了した後にエラーと警告の数を示すコンパイラレポートのようなものが本当に好きです。 Linux シェルにのみ適用されます。
答え1
はい。ほとんどのシェルは、内部コマンドがエラーを生成すると、現在のスクリプトを終了できます。これは通常、次のように行われます。
set -e
以下で閉じることができます。
set +e
編集する:質問を間違って理解しました。 Bashや他のシェルには、-n
スクリプトを実行せずに構文エラーをチェックするオプションもあります。
$ bash -n script.sh
-e
オプションは-n
POSIX によって記述されます。の場合、-n
標準には次のように指定されています。
シェルはコマンドを読み取る必要がありますが、実行しないでください。これは、シェルスクリプトの構文エラーを確認するために使用できます。対話型シェルはこのオプションを無視できます。
言う:この答えはPOSIXの適合性をチェックするのではなく、構文のチェックに関するものです。独自のセマンティクスでPOSIXを拡張するシェルは、拡張セマンティクス-n
で作成されたスクリプトの構文(使用法)を引き続き確認できます。これは、シェルまたはスクリプトのPOSIX適合性について何も言わず、シェルスクリプトが問題のシェルに対して構文的に正しいかどうかを示すだけです。