Bash 带“grep”的操作&引用;图案
我将通过不同的grep选项。我有下面的grep命令Bash 带“grep”的操作&引用;图案,bash,Bash,我将通过不同的grep选项。我有下面的grep命令 result=$(echo "ABC DEF" | grep -q " ? ") 我知道,grep中的-q选项将使输出静音 “?”在grep命令中是否具有特定的含义,或者它将仅以字符串/字符的形式匹配“?”,没有标志来指示输入是正则表达式,它没有特殊的含义 测试: 使用-q标志进行测试: ~$ echo "hello ? world" | grep -q " ? "; echo $? 0 $?保存最后一个命令的退出状态grep是echo之前
result=$(echo "ABC DEF" | grep -q " ? ")
我知道,grep中的-q
选项将使输出静音
“?”
在grep
命令中是否具有特定的含义,或者它将仅以字符串/字符的形式匹配“?”
,没有标志来指示输入是正则表达式,它没有特殊的含义
测试:
使用-q
标志进行测试:
~$ echo "hello ? world" | grep -q " ? "; echo $?
0
$?
保存最后一个命令的退出状态grep
是echo之前的最后一个命令,匹配时返回0
如果尝试不匹配的字符串,您将得到:
~$ echo "hello world" | grep -q " ? "; echo $?
1
所以我的理解是正确的,它将只匹配第一个命令的管道输出中的“?”。谢谢。
grep-q
从不打印任何内容,因此result
将始终是空字符串。事实上,您可能正在寻找if echo“ABC DEF”| grep-q”;然后回声“匹配”;否则回声“不匹配”;fi
其中if
流量控制命令的全部和唯一目的是运行命令管道并检查其退出状态。正确。您的作业没有提示您要回答的问题。@tripleee因此,如果在我将要执行的注释中发布的代码,它将给出“不匹配”作为输出。如果echo“ABC DEF”| grep-q“?”,则与此条件相同;是的,绝对是。这也很容易由您自己验证。
~$ echo "hello world" | grep -q " ? "; echo $?
1