스크립트에서 이러한 명령을 실행하면
#my.sh
PWD=bla
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
xxx
bla
그것은 괜찮습니다.
그러나 내가 달리면 :
#my.sh
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
$ sed: -e expression #1, char 8: Unknown option to `s'
튜토리얼에서 쉘에서 환경 변수를 대체하고 중지 해야하는 $varname
부분을 인용하여 직접 대체하지 않도록 부품을 인용 합니다. 이것은 내가 한 일이며 변수가 바로 정의 된 경우에만 작동합니다.
$var
쉘에 정의 된 환경 변수로 sed를 어떻게 인식 할 수 있습니까?
set -x
쉘이 각 명령을 실행하기 직전에 에코하도록하려면 쉘에서 사용하십시오 . 이것은 많은 혼란을 제거 할 수 있습니다. (또한, 종종 set -u
참조 해제 된 변수 해제를 어려운 오류로 만들기 위해 사용 합니다. (참조 set -e
).)