根据docs for the Unix "screen" command ,您可以在 .screenrc 中将其配置为从一组默认 screen 开始,每个 screen 运行您指定的命令。
这是我的配置:
# Default screens
screen -t "shell_0" 1
screen -t "autotest" 2 cd ~/project/contactdb ; autotest
它不会运行自动测试命令。当我启动 screen
时,我尝试运行 autotest
的那个窗口会立即关闭。
我也试过...
screen -t "autotest" 2 cd ~/project/contactdb
同样的结果。
我也试过...
screen -t "autotest" 2 ls
同样的结果。
让它在启动时在给定 screen 上运行命令的秘诀是什么?
最佳答案
你的程序正在运行(好吧,除了 cd),只是它在没有父 shell 的情况下运行,所以一旦它完成,它就会退出,你就完成了。
你可以这样做:
screen -t "autotest" 2 bash -c 'cd ~/project/contactdb ; autotest'
产生两个 shell ,但生活可能会继续。
关于bash - 你如何使用命令启动 Unix screen 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543737/