我怎样才能远程login到一台机器,执行一个脚本来设置一个环境,然后接受用户的input?

我一直在试图找出一个方法来做到这一点,现在几个小时,没有运气。

我有一个大的环境文件,我已经保存为一个ksh脚本。 如果我input的话,这个脚本是完美的 ./setEnv.sh

不过,我想要做的是使用ssh或rshlogin到远程系统,执行这个脚本,然后让我使用它的修改后的forms的系统。 我能够成功执行脚本,但连接总是在执行后closures。 我希望能够保持这个连接打开。

任何想法如何我可以做到这一点?

目前,如果使用SSH或RSH来实现这一点并不重要。 RSH是优选的。 我正在使用各种各样的Linux和Solaris操作系统,所以一个全面的方法将是很好的。

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

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

谢谢,Matt

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

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

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

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

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

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

如果我正确地理解了你(而且我不确定我是否这么做),那么你只需使用“source”命令来做到这一点。

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

那有意义吗?