在 ssh 命令中使用远程服务器的环境变量

Pra*_*pta 5 linux ssh shell

我有两台服务器 X(主机)和 Y(远程)。脚本 abc.sh 保存在 Y 服务器上。我正在使用 ssh 命令从服务器 X 运行 abc.sh。

脚本运行成功,但包含服务器 Y 的环境变量(保存在 /.bash_profile 中)的命令给出空白输出。

当我从服务器 Y 本身运行 abc.sh 时,所有命令都成功运行。

我的问题是如何包含远程服务器(Y)的环境变量,以便完整脚本能够成功执行。

注意:我没有对 etc 目录的写访问权限,因此我无法更改其中的任何内容。

提前致谢!

scr*_*ter 3

您可以包含环境变量,如下所示:

ssh user@host_y 'source ~/.bash_profile; /path/to/your/script/abc.sh'
Run Code Online (Sandbox Code Playgroud)

由于直接命令运行不是交互式 shell,因此您的变量将无法在那里工作。source将在当前 shell 中运行脚本并使该文件中的环境变量对您的脚本可见。