首页 > 解决方案 > linux输出,不需要终端输出

问题描述

if(grep "9" ls ); then echo "hello"; else echo "hi"; fi

当我执行上面的命令输出是下面的

grep: ls: No such file or directory

你好

我怎样才能得到hi(唯一条件)作为输出

标签: linuxbashshelloutputstdout

解决方案


grep -q "9" ls 2>/dev/null || echo "hi"

-q不会打印 grep 输出本身

2>/dev/null不是必需的,但会抑制可能的错误消息,使输出“更干净”(例如 no grep: ls: No such file or directory

或者根据@Aaron的建议甚至更好的解决方案:

grep -qs "9" ls || echo "hi"

推荐阅读