我需要一个显示“是”或“否”的class轮,无论grep是否find任何结果。
我玩过grep -c ,但没有成功。
怎么样:
uptime | grep user && echo 'yes' || echo 'no' uptime | grep foo && echo 'yes' || echo 'no'
那么你可以安静下来:
uptime | grep --quiet user && echo 'yes' || echo 'no' uptime | grep --quiet foo && echo 'yes' || echo 'no'
从grep手册页:
退出状态
通常,如果find选定的行,则退出状态为0,否则为1。 但是,如果发生错误,则退出状态为2,除非使用了-q或–quiet或–silent选项,并find选定的行。
不知道你是什么意思的“一class”,对我来说这是一个“class轮”
只需添加; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi ; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi ; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi后你grep命令
bash$ grep ABCDEF /etc/resolv.conf; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi No bash$ grep nameserver /etc/resolv.conf; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi nameserver 212.27.54.252 Yes
添加-q标志为grep,如果你想压制grep结果
bash$ grep -q nameserver /etc/resolv.conf; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi Yes
这个版本介于Weboide的版本和radius的版本之间:
if grep --quiet foo bar; then echo "yes"; else echo "no"; fi
它比前者更可读,它不会不必要地使用$? 像后者。