我希望在远程系统上运行脚本,然后希望留在该系统上。运行以下脚本:-
ssh user@remote logs.sh
Run Code Online (Sandbox Code Playgroud)
这确实运行了脚本,但是之后我又回到了主机系统。我需要留在偏远的地方。我尝试过..
ssh user@remote logs.sh;bash -l
Run Code Online (Sandbox Code Playgroud)
它以某种方式解决了问题,但仍然不能像命令一样完全用作新登录:
ssh user@remote
Run Code Online (Sandbox Code Playgroud)
或者,如果我可以在脚本中包含可以在脚本运行所在目录中打开bash终端的内容,那会更好。请提出建议。
尝试这个:
ssh -t user@remote 'logs.sh; bash -l'
Run Code Online (Sandbox Code Playgroud)
需要使用引号将两个命令都传递给ssh。该-t选项强制执行伪tty分配。
考虑:
ssh user@remote logs.sh;bash -l
Run Code Online (Sandbox Code Playgroud)
当外壳程序解析此行时,它将其分成两个命令。第一个是:
ssh user@remote logs.sh
Run Code Online (Sandbox Code Playgroud)
它logs.sh在远程计算机上运行。第二个命令是:
bash -l
Run Code Online (Sandbox Code Playgroud)
这将在本地计算机上打开一个登录外壳。
上面添加了引号,以防止外壳程序以这种方式拆分命令。