从.screenrc在GNU Screen窗口中运行命令

时间:2011-09-28 14:46:04

标签: gnu-screen

有没有办法从我的.screenrc向GNU Screen窗口发送一系列命令?看起来这应该很容易做到:

.screenrc:

startup_message off
screen -t "RAILS SERVER"
<send command to last created window> <my alias to cd Rails project>
<send command to last created window> rails s
screen -t "RAILS CONSOLE"
<send command to last created window> <my alias to cd to Rails project>
rails c

我已多次浏览屏幕手册,但找不到<send command to last created window>的任何内容。

谢谢, 最大

2 个答案:

答案 0 :(得分:17)

Keith的回答完成了工作,但它将窗口与该过程联系起来,这样一旦应用程序执行完毕,窗口就会关闭。

在这里,我完成的工作完美无缺:

screen -t "RAILS SERVER"
stuff "cd $my_rails_directory; rails server^M"

screen -t "RAILS CONSOLE"
stuff "cd $my_rails_directory; rails console^M"

这里要注意的重要部分是 ^ M 字符。这实际上不是^后面跟着M.这是一个原始的换行符。在几乎所有CLI程序(vi,emacs,shell)中,您都可以按CTRL-V然后按ENTER键生成此字符。

这是如何工作的? stuff命令直接在控制台中输入给定的字符串。最后的换行文字实际上会发送命令,就像你自己输入的那样。希望有所帮助!我发现这种方法比其他方法更稳定可靠。

答案 1 :(得分:7)

这不是一个单独的命令;您只需指定在创建窗口的行上运行的命令。

例如(未经测试):

screen -t "RAILS SERVER" sh -c "cd ... ; rails s"