我有一个unix命令序列,类似于:
command1 | command2 | command3 | wc -l
现在我有行数,如果行数不等于特定数字,我想做某事(运行没有输入的特定命令)。我的shell脚本非常生疏(可能是因为我做了很多Unix工作已经10年或更长时间)所以我不知道如何在命令序列中添加这种条件。有谁知道吗?
答案 0 :(得分:5)
您需要捕获wc
命令的输出,并使用if
运行另一个命令,如果它不等于您想要的行数,例如:
count=$(command1 | command2 | command3 | wc -l)
if [[ $count -ne 19 ]] ; then
command4
fi
答案 1 :(得分:3)
numberOfLines=$(command1 | command2 | command3 | wc -l)
if [ "${numberOfLines}" == "7" ]; then
echo "Hooray."
fi
答案 2 :(得分:2)
有点难看..但这很有效。
# test $(seq 10 | wc -l) -eq 10 && echo "there's 10"
there's 10
# test $(seq 11 | wc -l) -eq 10 && echo "there's 10"
第二种情况下没有echo