【发布时间】:2021-09-29 14:20:28
【问题描述】:
我想编写一个在远程服务器上执行多个命令的脚本,其中包括执行一些应用程序。远程机器上的.bashrc 文件定义了PATH 变量,以便这些应用程序在它之下。
但是当我尝试使用 ssh <host> <command> 时,似乎 .bashrc 没有加载。 ssh <host> 'echo $PATH' 只显示一些路径,例如 /usr/bin 。
更让我困惑的是,即使ssh <host> "source ~/.bashrc; <command>" 也不起作用。 ssh <host> 'source ~/.bashrc; echo $PATH' 仍然只打印了几条路径。我通过ssh <host> 'cat ~/.bashrc'检查并确认该文件确实包含所有PATH定义,在执行命令的环境中没有受到影响。
【问题讨论】:
-
NB 运行
ssh <host> "echo $PATH"会在本地系统而不是远程系统上回显您的路径。