为什么这个命令
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
。