bash - 你如何使用命令启动 Unix screen 命令?

标签 bash unix shell command-line gnu-screen

根据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/

相关文章:

shell - 在 'grep' 结果中包含 header

http - 我将如何使用 cron 作业发送 HTML GET 请求?

linux - bash - 声明文档

linux - Heroku 构建包 : permission denied on npm install in bash script

apache - 如何在可以通过 ssh 连接的服务器上打开 Web 浏览器?

c - 了解 Unix dup2 系统调用?

linux - 如何通过 bash 脚本中的管道从命令中提取 2 条信息输出?

git - 尝试推送到 GitHub,现在收到 'fatal: bad default revision'

linux - 如何在我的系统上找到可执行文件的所有版本?

installation - 如何在 KDE 中以编程方式创建键盘快捷键?