Bash
在 shell 腳本中查看 $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
來調試它?
在
$PATH
遠端伺服器上執行之前正在擴展。範例 #1
假設我從一個名為 skinner.bubba.net 的系統執行這些命令。
[root@skinner ~]# ssh mulder 'bash -s' <<EOL > echo $HOSTNAME > hostname > EOL skinner.bubba.net mulder.bubba.net
通過移動單引號以使其
echo $HOSTNAME
位於其中,您可以防止變數被 skinner 的 Bash shell 擴展。[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