我一直在试图找出一个方法来做到这一点,现在几个小时,没有运气。
我有一个大的环境文件,我已经保存为一个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”
那有意义吗?