我正在使用 .byobu/windows 启动一些屏幕会话,并且我正在尝试启动一个脚本,该脚本将在完成后退出到交互式 shell。这可能吗?
我试过了:
screen -t test /bin/bash -i /path/to/script
screen -t test /bin/bash - /path/to/script
我意识到我可以在脚本末尾添加 /bin/bash ,但我不希望将其作为在 shell 中运行脚本时的解决方案...
答案1
如果使用相同的 shell 很重要,请使用该--rcfile
标志。
$ cat test.bashrc
ls
PS1='TEST \$'
$ screen -t test bash --rcfile test.bashrc -i
a.file b.file test.bashrc
TEST $
如果您.bashrc
正在设置环境,请务必获取它的来源。
答案2
我发现运行命令并将输出和交互式 shell 留在屏幕内的唯一合理方法是使用“stuff”命令来执行命令:
screen -t title1 bash
stuff 'ls /tmp^M' # in vim type control-v control-m to insert the return at the end
答案3
如果可能的话,只需启动两个命令。
screen -t test /bin/bash /path/to/script; /bin/bash
如果您只能启动一个命令,请尝试以下操作:
/bin/bash -c 'screen -t test /bin/bash /path/to/script; /bin/bash'