셸 스크립트 디버깅 :

을 실행하지 않고 구문 검사

[bash] 셸 스크립트의 구문을 확인하여 구문을 확인하는 옵션이 있습니까? 하지만 실제로 실행하거나 잠재적 인 손상을 입히지는 않습니까?

답변

bash(1) 맨 페이지 :

-n Read commands but do not execute them. This may be used to check a shell script for syntax errors. This is ignored by interactive shells. 

댓글

  • 분명히. 내가 왜 그렇게 눈이 멀어서 매뉴얼 페이지를 볼 때 이것을 볼 수 없었는지 모르겠습니다.

답변

http://www.shellcheck.net

$ shellcheck myscript.sh In myscript.sh line 590: for f in $*; do ^-- SC1009: The mentioned parser error was in this for loop. In myscript.sh line 617: if [ ! -e "$somefile".vcf ]; then ^-- SC1046: Couldn"t find "fi" for this "if". ^-- SC1073: Couldn"t parse this if expression. In myscript.sh line 1026: done ^-- SC1047: Expected "fi" matching previously mentioned "if". ^-- SC1072: Unexpected keyword/token. Fix any mentioned problems and try again. 

글쎄요, 634 행에 “if”가 누락되었다고 알려주지는 않았지만 꽤 도움이되었습니다.

댓글

  • 또한 ' 로컬에서 다운로드하여 실행할 수 있으며 Haskell에서 실행된다는 점도 주목할 가치가 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다