Ksh脚本:如何保持在ssh中并继续运行脚本
问题描述:
因此,对于我的脚本,我希望ssh进入远程主机,并在脚本结束后保留在远程主机中,并且还要将目录更改为与远程主机匹配脚本结束。Ksh脚本:如何保持在ssh中并继续运行脚本
#!/bin/ksh
ssh -t -X [email protected] 'cd $HOME/bin/folder1; echo $PWD; ssh -q -X ssh [email protected]; cd $HOME/bin/folder2; echo $PWD'
PWD在第二个ssh之前正确更改。第二个ssh的原因是因为它结束了正确的远程主机中的脚本,但它不会保留我试图通过将命令放在其后的目录更改,但它们不会执行。
有没有人有任何想法?
答
在命令列表的末尾只要启动一个shell:
ssh -t -X [email protected] 'cd $HOME/bin/folder1; echo $PWD; ssh -q -X ssh [email protected]; cd $HOME/bin/folder2; echo $PWD; ksh'
如果您希望shell是登录一个(即一个读取.profile
),使用exec -l
:
ssh -t -X [email protected] 'cd $HOME/bin/folder1; exec -l ksh'
如果远程服务器使用的旧ksh
版本不支持内置的exec -l
,并且如果bash
或ksh93
可用,则此处为解决方法:
ssh -t -X [email protected] 'cd $HOME/bin/folder1; exec bash -c "exec -l ksh"'
你想解决什么特别的任务?它看起来像你需要'screen'工具 –
我的脚本sshs snd执行数据分析并将其输出到远程主机上的一个文件夹中。脚本结束后,用户将从远程主机启动。 我希望用户保留在远程主机中,并位于数据分析完成的目录中。 – BennyBen