쉘 스크립트에서 $PATH의 원격 값 보기

쉘 스크립트에서 $PATH의 원격 값 보기

이 bash 스크립트를 실행하면 내 로컬 경로만 표시됩니다.

ssh ${REMOTE_HOST} 'bash -s' <<EOL
    set -e
    source ~/.profile
    echo $PATH
    # Commands here don't work because $PATH is not set properly.
    # How can I see what $PATH is set to here?
EOL

$PATH디버깅하기 위해 원격 값을 어떻게 볼 수 있나요 ?

답변1

$PATH원격 서버에서 실행되기 전에 확장됩니다.

예시 #1

Skinner.bubba.net이라는 시스템에서 이 명령을 실행한다고 가정해 보겠습니다.

[root@skinner ~]# ssh mulder 'bash -s' <<EOL
>   echo $HOSTNAME
>   hostname
> EOL
skinner.bubba.net
mulder.bubba.net

변수 안의 작은따옴표를 이동하면 Skinner의 Bash 셸에서 변수가 확장되는 것을 방지할 수 있습니다 echo $HOSTNAME.

[root@skinner ~]# ssh mulder 'bash -s <<EOL
>   echo $HOSTNAME
>   hostname
> EOL'
mulder.bubba.net
mulder.bubba.net

예시 #2

또 다른 방법은 슬래시 이스케이프를 사용하는 것인데 $HOSTNAME, 이는 Bash에게 문자 그대로 달러 기호를 보내고 싶다고 알려줍니다.

[root@skinner ~]# ssh mulder 'bash -s' <<EOL
>   echo \$HOSTNAME
>   hostname
> EOL
mulder.bubba.net
mulder.bubba.net

관련 정보