셸 스크립트 디버깅: 실행 없이 구문 검사

셸 스크립트 디버깅: 실행 없이 구문 검사

[bash] 쉘 스크립트의 구문을 검사하기 위해 제공할 수 있는 옵션이 있습니까? 실제로 아무것도 실행하지 않거나 잠재적인 손상을 일으키지는 않습니까?

답변1

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.

답변2

시험해 보세요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"가 빠졌다는 사실은 알려주지 않지만 매우 도움이 됩니다.

관련 정보