如何从单个 bash 脚本启动多个屏幕会话?

Eri*_*ric 9 linux script bash gnu-screen

我写了一个看起来像这样的脚本(不起作用):

#!/bin/sh

screen -dmS "somename" somecommand

for i in {0..5}; do
    screen -dmS "name$i" anothercommand $i
done
Run Code Online (Sandbox Code Playgroud)

出于某种原因,如果我将其复制并粘贴到终端中,它会按照我的预期创建 7 个分离的屏幕会话。但是,如果我从脚本中运行它,当我运行screen -ls.

编辑:如果可以通过另一种方式完成相同的操作(例如,使用多个屏幕窗口而不是会话),我也会打开这些解决方案。谢谢!

Eri*_*ric 7

我最终将这个问题带到了 StackOverflow,Brian Gerard在那里回答了这个问题。的{0..5}循环语法是bash的(3.X +)特异性的。默认情况下,我的系统被设置为从 运行其他一些 shell /bin/sh,所以我将我的 sharp-bang 更改为#!/bin/bash,我的问题解决了!

  • 作为参考,[this](http://stackoverflow.com/questions/6834429/launch-multiple-scripted-screen-sessions-from-another-script/6834810#6834810) 是 SO 的答案。 (2认同)