
주어진 첫 번째 인수를 인쇄하는 간단한 bash 스크립트가 있습니다.
#!/bin/bash
echo $1
이 스크립트를 실행하면 ./filename.sh $PATH
PATH 변수의 모든 내용이 인쇄됩니다. "$PATH" 문자열을 표시하고 싶습니다.
나는 그것을 시도했지만 echo "$1"
같은 방식으로 작동합니다.
해결책이 있나요?
답변1
아니요. 스크립트를 시작하기 전에 변수가 셸에 의해 확장되므로 스크립트는 변수를 볼 수 없고 변수의 내용만 볼 수 있으므로 해결 방법이 없습니다.
그러나 간단한 해결책이 있습니다. 변수는 작은따옴표로 확장되지 않으므로 변수를 해당 값 대신 문자열로 전달하려면 해당 변수를 인용하면 됩니다.
$ ./filename.sh '$PATH'
$PATH
그러나 스크립트에서 변수도 참조해야 합니다.
#!/bin/bash
echo "$1"
이 특별한 경우에는 아무런 차이가 없지만좋은 연습그리고좋은 습관을 길러야 한다.