如何编写一个简单的 shell 脚本来检查是否有人使用 display :0
?这不起作用:
if [ 'who | grep " :0 "' != "" ]
then
echo "hi"
fi
其他一些答案有效,但不需要捕获 grep 的输出(使用 $() 或 backtics)进行字符串比较,因为 grep 的退出状态将指示成功或失败。因此,您可以将其简化为:
if who | grep -q ' :0 '; then
echo hi
fi
或者更简单:
who | grep -q ' :0 ' && echo hi
笔记:
“if”对命令或命令管道进行操作。
左方括号实际上是一个命令,是“测试”的另一个名称。
q 选项抑制 grep 的输出(在大多数版本中)。
您可以只调用 who 和 grep,而不是调用 who、grep 和 test。
正如另一个答案指出的那样,您可能需要 grep 查找除“ :0 ”之外的其他内容,具体取决于您的系统。
#!/bin/sh
R=$(who | grep " :0 ")
echo $R
if [ "$R" != "" ]; then
echo "hi"
fi
if who | grep " :0 "
then
echo "hi"
fi
请注意,对于不同版本的who , who 的输出是不同的。对于你需要grep '(:0'而不是grep " :0 "的 GNU coreutils 7.4 版本