【发布时间】:2017-10-02 05:09:53
【问题描述】:
我有两台服务器 X(主机)和 Y(远程)。脚本 abc.sh 保存在 Y 服务器上。我正在使用 ssh 命令从服务器 X 运行 abc.sh。
脚本运行成功,但包含服务器 Y 的环境变量(保存在 /.bash_profile 中)的命令给出空白输出。
当我从服务器 Y 本身运行 abc.sh 时,所有命令都运行成功。
我的问题是如何包含远程服务器(Y)的环境变量,以便完整的脚本能够成功执行。
注意:我没有对 etc 目录的写入权限,因此我无法更改其中的任何内容。
提前致谢!
【问题讨论】:
-
不,我没有在其中找到我的答案,这就是为什么要单独询问。
-
为什么不呢。你完整阅读了吗?例如:“当 bash 作为交互式登录 shell 或作为带有 --login 选项的非交互式 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令,如果该文件存在的话”。也就是说,您是否尝试将 env 值放在 /etc/profile 中?还有其他几个建议 - 您是否尝试了所有建议,但没有一个对您有用?如果是这种情况,您需要说明您尝试了什么以及为什么它们不适合。
-
我不是服务器的超级用户,因此我在 etc 目录中没有写入权限。这就是为什么该链接上的大多数解决方案都不适合我的原因。
-
嗯,这是一个相当重要的约束,对吧?建议将其放入您的问题中。