如果 GNU screen 已存在,请重新附加到它,否则创建它

如果 GNU screen 已存在,请重新附加到它,否则创建它

我正在尝试这样做:如果名为 的 GNU 屏幕worker已存在,则重新附加到它,否则通过启动python example.py.

我试过:

if [ls /var/run/screen/S-root/ |grep -Fxq worker] then screen -r worker else cd /home/www/example/; screen -S worker python example.py fi

但它似乎不起作用。

语法有问题吗?

答案1

screen -ls使用或更有意义

screen -S worker -x || { cd /home/www/example; screen -S worker python example.py; }

但你的代码中的错误是

  1. 不必要的[(周围需要空间)

    if [ls /var/run/screen/S-root/ |grep -Fxq worker]
    

    必须是

    if ls /var/run/screen/S-root/ | grep -Fxq worker
    
  2. 之前缺少;/换行符then

    |grep -Fxq worker] then
    

    必须是

    | grep -Fxq worker; then
    
  3. 之前缺少;/换行符else

     then screen -r worker else
    

    必须是

     then screen -r worker; else
    
  4. 之前缺少;/换行符fi

    python example.py fi
    

    必须是

    python example.py; fi
    

相关内容