tha*_*man 1 bash shell gnu-screen
我有一个shell脚本,如果它存在,它应该杀死一个分离的屏幕会话.脚本是
if ! screen -list | grep -q "ScreenName"; then
screen -S ScreenName -X quit
fi
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我运行脚本并且屏幕会话不存在时,屏幕-S ... -X quit命令似乎始终运行bc,它仍然输出"未找到屏幕会话".当我删除!并且屏幕会话正在运行,它不会终止正在运行的会话.
问题是什么?谢谢
要摆脱"没有找到屏幕会话"消息,重定向stderr screen:
screen -list 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
接下来,请记住,-X如果会话受密码保护,则不起作用.
然后,使用-r让我们screen知道你只想杀死分离的会话,并且不再需要grep和if.
把它们放在一起:
screen -r -S "ScreenName" -X quit 2>/dev/null
Run Code Online (Sandbox Code Playgroud)