“ssh user@host echo $PATH”给我本地路径而不是远程路径

“ssh user@host echo $PATH”给我本地路径而不是远程路径

为什么这个命令

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

相关内容