Shell SSH:远程运行脚本并停留在那里

Shell SSH:远程运行脚本并停留在那里,shell,unix,ssh,Shell,Unix,Ssh,我希望在远程系统上运行一个脚本,然后希望留在那里。 正在运行以下脚本:- ssh user@remote logs.sh 这确实会运行脚本,但在此之后,我将返回主机系统。我需要呆在遥控器上。我试过 ssh user@remote logs.sh;bash -l 它以某种方式解决了问题,但仍然不能完全像命令那样作为新登录:- ssh user@remote 或者,如果我可以在脚本中包含一些内容,以便在运行脚本的同一目录中打开bash终端,那就更好了。请建议 试试这个: ssh -t user

我希望在远程系统上运行一个脚本,然后希望留在那里。 正在运行以下脚本:-

ssh user@remote logs.sh
这确实会运行脚本,但在此之后,我将返回主机系统。我需要呆在遥控器上。我试过

ssh user@remote logs.sh;bash -l
它以某种方式解决了问题,但仍然不能完全像命令那样作为新登录:-

ssh user@remote
或者,如果我可以在脚本中包含一些内容,以便在运行脚本的同一目录中打开bash终端,那就更好了。请建议

试试这个:

ssh -t user@remote 'logs.sh; bash -l'
将这两个命令传递到
ssh
需要引号。
-t
选项强制执行伪tty分配

讨论 考虑:

ssh user@remote logs.sh;bash -l
当shell解析这一行时,它将它拆分为两个命令。第一个是:

ssh user@remote logs.sh
这将在远程计算机上运行
logs.sh
。第二个命令是:

bash -l
这将在本地计算机上打开一个登录shell


上面添加了引号,以防止shell以这种方式拆分命令。

您不能只执行
ssh吗user@remotelogs.sh;sshuser@remote
?你所说的“不完全像新登录一样工作”是什么意思?加入一个
-t
来分配一个
pty
,因为他试图获得一个交互式shell,而不仅仅是运行一个命令;如果您将命令传递给ssh,它不会通过default@Petesh谢谢
bash-i
工作正常,但是
ssh-t
工作得更好。答案已更新。此外--要在
ssh
会话完成后运行命令:
ssh-tuser@remote'logs.sh;bash-l′;echo“-[remote session done]”。该消息在您退出后打印。如果shell脚本不在远程计算机上,我们如何在不上传的情况下将shell脚本从本地计算机运行到远程?