为什么命令
ssh user@host echo $PATH
Run Code Online (Sandbox Code Playgroud)
或者
ssh user@host -t echo $PATH
Run Code Online (Sandbox Code Playgroud)
返回本地机器上的路径而不是远程机器上的路径?
这意味着执行远程命令,如
ssh user@host command
Run Code Online (Sandbox Code Playgroud)
将在远程机器上搜索此命令,但使用本地机器上定义的路径,这是一个有点奇怪的行为还是我错了?
命令
ssh user@host echo $PATH
Run Code Online (Sandbox Code Playgroud)
将echo
在远程主机上使用$PATH
本地的任何值执行,因为该变量是在命令行上不加引号给出的。
要获取远程路径,请确保本地 shell 不扩展该变量:
ssh user@host 'echo $PATH'
Run Code Online (Sandbox Code Playgroud)
命令周围的单引号会阻止本地 shell 扩展$PATH
。