sh 쉘: 따옴표 안에 $1을 사용하는 방법

sh 쉘: 따옴표 안에 $1을 사용하는 방법

나는 이 코드를 사용하고 있습니다 :

#!/bin/sh
if [ $# -lt 2 ]
then
    echo "wrong syntax"
    echo "ct_cmp.sh <label1> <label2> [<file_extension>]"
else
    if [ $# -eq 2 ]
    then
        cleartool find . -version 'lbtype($1) && \!lbtype($2)' -print
    fi
fi

그러나 다음 결과를 얻습니다.

정리 도구:

Error: Invalid query: "lbtype($1) && \!lbtype($2)"

답변1

작은따옴표는 매개변수 확장을 방지합니다.

'lbtype($1) && \!lbtype($2)'

와 함께 작동해야 합니다 "'lbtype($1) && \!lbtype($2)'".

그건 그렇고, 쉘 스크립트로 작업할 때 제가 사용하는 도구 중 하나는 shellcheck를 사용하여 이를 확인하는 것입니다.https://www.shellcheck.net/(독립형 실행 파일에서도 사용 가능) 당연히 간단한 인용문에 대해서도 똑같은 내용을 알려줍니다.

관련 정보