-n 실행하지 않음;명령을 읽고 구문을 확인하지만 실행하지는 않습니다.
"가 필요한 경우에 대한 예를 들어주실 수 있나요?실행되지 않음"Bash 옵션 중 하나는 무엇입니까?
누군가 이 옵션을 올바르게 사용하는 방법에 대한 예를 들어줄 수 있습니까?
답변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
, 외부 명령에 어떤 옵션이 허용되는지 미리 알 수 있는 방법이 없습니다.