当使用set -e不匹配时,grep -c杀死脚本

时间:2017-11-27 23:50:38

标签: bash grep

基本示例:

#!/bin/bash
set -e
set -x

NUM_LINES=$(printf "Hello\nHi" | grep -c "How$")
echo "Number of lines: ${NUM_LINES}" # never prints 0

输出:

++ grep -c 'How$'
++ printf 'Hello\nHi'
+ NUM_LINES=0

如果有匹配项,则会打印正确的行数。 grep "How$" | wc -l也可以使用grep -c "How$"而不是Mike:James:314849866:mjames69@asu.edu:5059358554:NM:8830:Johnson:Rd:Albuquerque:87122

1 个答案:

答案 0 :(得分:2)

您可以通过{""失败&#34}运行:来禁止grep的退出代码。 :总是成功。

NUM_LINES=$(printf "Hello\nHi" | grep -c "How$" || :)