我正在写一个小脚本,它会向正在运行的屏幕会话发送命令。此命令会停止屏幕但不会立即停止。我需要等待它完成才能继续使用脚本的其余部分。
这就是我停止屏幕的方式:
screen -S $SCREEN_NAME -p 0 -X stuff "`printf "stop\r"`"
我怎么能这样做?
我找到了解决方案:
您只需检查屏幕是否仍在运行并等待(sleep
)一秒钟。
像这样:
while screen -list | grep -q $SCREEN_NAME
do
sleep 1
done
对于*nix
系统,您可以在shell脚本中使用wait
命令。 wait
也可以采取PID
,所以你可以做wait $!
等待最后执行的命令在后台运行。如果您的命令没有在后台运行(命令末尾没有&
),那么运行脚本将等到该命令完成