替代非交互式shell

时间:2017-02-15 11:00:24

标签: bash shell ssh non-interactive

我有一个要求,其中需要执行一个脚本,这需要设置一些环境变量。通常需要以下内容:

1)我登录到目标节点,使用'user1'说T1并设置我的环境变量,比如TEMPDIR =〜/ tmp;做一个源〜/ .bashrc和注销。

2)现在我需要执行非交互式shell脚本。这是 登录管理服务器并运行命令: ssh user1 @ T1“sudo -u user2 / path / filescript”

我执行的文件脚本需要设置TEMPDIR。

上面的设置不起作用,因为在非交互式shell期间没有来源bash shell(如果我的理解是正确的)。为了解决这个问题,我尝试了本网站和其他网站提供的以下建议,但没有任何运气:

ssh user1 @ T1“source~ / .bashrc; sudo -u user2 / path / filescript”

ssh user1 @ T1“sudo -u user2 env -i / path / filescript”

请帮忙。感谢。

注意:我试图在没有root干预的情况下完成此操作(我的意思是使用root来设置/取消设置任何变量。

1 个答案:

答案 0 :(得分:0)

我不确定第1步是否有必要:

ssh user1@T1 sudo -u user2 env -i TEMPDIR=/home/user2/tmp /path/filescript"