如何远程登录到一台机器,执行设置环境的脚本,然后接受用户输入?

如何远程登录到一台机器,执行设置环境的脚本,然后接受用户输入?

几个小时以来,我一直在尝试寻找一种方法来做到这一点,但没有任何进展。

我有一个大型环境文件,已将其保存为 ksh 脚本。如果我输入 ./setEnv.sh,此脚本将完美运行

但是,我想使用 ssh 或 rsh 登录到远程系统,执行此脚本,然后允许我以修改后的形式使用该系统。我能够成功执行脚本,但执行后连接总是会关闭。我希望能够保持此连接打开。

关于我该如何做到这一点,您有什么想法吗?

目前,我使用 SSH 还是 RSH 来实现这一点并不重要。RSH 更可取。我使用的是多种 Linux 和 Solaris 操作系统,因此,采用一种万能方法会更好。

像这样的命令:
ssh user@host "/home/me/directory/setEnv.sh"

确实在远程机器上执行了脚本,但不允许我使用修改后的环境。

谢谢,马特

答案1

ssh -t -t user@host 'bash -l -i --init-file env.sh'

部分-t -t是强制 ssh 分配一个 TTY,bash -l -i部分是以登录模式和交互方式启动 bash。

--init-file部分是你的脚本如何操纵环境。它应该提供来源~/.bashrc/etc/bash.bashrc

答案2

也许您可以在完成脚本后手动运行 shell。

ssh ip -l root "/bin/bash env.sh; /bin/bash"

答案3

或者简单地编辑你的.bash_profile并添加./setEnv.sh 命令。

答案4

如果我理解正确的话(我不确定我是否理解正确),那么您只需使用“source”命令执行此操作。

ssh 到目标机器,然后“source env.sh;nextcommand;nextcommand”

那有意义吗?

相关内容