启动屏幕(unix命令)+在1条命令中运行命令?

问题描述:

想知道我怎么可以启动一个命令,例如:启动屏幕(unix命令)+在1条命令中运行命令?

while :; do ./myCommand; done; 

但是在做平常

screen -S nameOfMyScreen 

然后命令

while :; do ./myCommand; done; 

然后取下屏幕

^a ^d (Control "a" the control "d" 

我希望它开始和分离。谢谢!

screen -d -m sh -c "while :; do ./myCommand; done;" 

说明:

  • -d -m开始屏幕分离模式(建立会话,但不重视它)
  • sh -c commandline开始其执行给定的命令行(需要一个壳,因为你正在使用内建的while)。
+0

我系统上的屏幕版本表示-c选项是读取备用配置文件而不是.screenrc。 – MikeSep 2010-01-05 16:39:34

+0

'-c'不会传递给屏幕,而是传递给'sh'。在屏幕命令行解析器读取“sh”(即没有划线的东西)之后,它知道没有更多的选项可用,其他所有内容都是应该执行的命令。 – Heinzi 2010-01-05 16:40:42

+0

啊,我纠正了。 :) – MikeSep 2010-01-05 20:53:56

screen -h,这些看起来有用:

-dmS name  Start as daemon: Screen session in detached mode. 
-X   Execute <cmd> as a screen command in the specified session. 

我没有这样做我自己,但是这就是我会开始。

更新:

的帮忙顶还说

Use: path/to/screen [-opts] [cmd [args]] 

所以-X开关可用于执行屏幕命令,而不是一个外壳命令。您可能只需将命令放在-dmS <name>之后,不需要任何-X切换。

+0

+1。这些将组合你的工作。既然你的*命令*是一个脚本,你可能必须把它放在一个文件中并传递它,或者使用'bash -c'或类似的东西。 – 2010-01-05 16:33:36