-n 実行しない;コマンドを読み、構文を確認しますが、実行しません。
「必要な場合の例を挙げることができますか?実行されない「Bashオプションの1つは何ですか?
誰かがこのオプションを正しく使用する方法の例を教えてください。
答え1
file
まず、指定されたファイルがディレクトリに存在しないことを確認してください。
これを作るsyntaxErr.bash
:
echo X > file
for i in a b c;
echo $i >> file
done
ご覧のとおり、do
forループの後に続く内容がありません。今何が起こっているのか見てください:
$ bash -n syntaxErr.bash
syntaxErr.bash: line 4: syntax error near unexpected token `echo'
syntaxErr.bash: line 4: ` echo $i >> file'
$ cat file
cat: file: No such file or directory
$ bash syntaxErr.bash
syntaxErr.bash: line 4: syntax error near unexpected token `echo'
syntaxErr.bash: line 4: ` echo $i >> file'
$ cat file
X
したがって、構文エラーフィードバックを得るために実際にコマンドを実行する必要はありません。非常に重要なタスクを実行している場合は、すべての構文エラーが修正されるまでスクリプトを実行したくありません。
注:ctafind.bash
これいいえ構文エラーがあります。
echo X > file
cta file
find . -type z
cat
スペルが間違っており、cta
zタイプファイルがありませんfind
。このフラグを使用してBashを実行すると、エラーは報告されません-n
。
$ bash -n ctafind.bash
$ bash ctafind.bash
ctafind.bash: line 2: cta: command not found
find: Unknown argument to -type: z
結局のところ、Bashには実行可能ファイルがあるかどうかcta
、外部コマンドにどのオプションが許可されるかを事前に知る方法はありません。