![“ssh user@host echo $PATH”给我本地路径而不是远程路径](https://linux22.com/image/162574/%E2%80%9Cssh%20user%40host%20echo%20%24PATH%E2%80%9D%E7%BB%99%E6%88%91%E6%9C%AC%E5%9C%B0%E8%B7%AF%E5%BE%84%E8%80%8C%E4%B8%8D%E6%98%AF%E8%BF%9C%E7%A8%8B%E8%B7%AF%E5%BE%84.png)
为什么这个命令
ssh user@host echo $PATH
或者
ssh user@host -t echo $PATH
返回本地计算机上的路径而不是远程计算机上的路径?
这意味着执行像这样的远程命令
ssh user@host command
将在远程计算机上搜索此命令,但使用本地计算机上定义的路径,这是有点奇怪的行为还是我错了?
答案1
命令
ssh user@host echo $PATH
会在远程主机上执行echo
,无论本地的值$PATH
是什么,因为变量是在命令行上给出的,不带引号。
为了得到偏僻的路径,确保本地 shell 不会扩展该变量:
ssh user@host 'echo $PATH'
命令周围的单引号会阻止本地 shell 扩展$PATH
。