有没有办法从我的.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>
的任何内容。
谢谢, 最大
答案 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"