运行UNIX外壳命令,如果输出不具有特定行数(run a unix shell command if

2019-10-17 09:09发布

我有一个去有点像UNIX命令序列:

command1 | command2 | command3 | wc -l

现在,我有行数,我想做点什么(运行没有输入特定的命令),如果行数不等于特定号码。 我的shell脚本是飞驰生锈(也许10年或以上,因为我已经做了很多的Unix工作),所以我不知道如何对这种条件添加到命令序列。 有人知道吗?

Answer 1:

有点丑..但这个工程。

#  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在第二种情况下编



Answer 2:

您需要捕捉的输出wc命令,并使用if运行另一个命令,如果它不等于你想要线,如人数:

count=$(command1 | command2 | command3 | wc -l)
if [[ $count -ne 19 ]] ; then
    command4
fi


Answer 3:

numberOfLines=$(command1 | command2 | command3 | wc -l)
if [ "${numberOfLines}" == "7" ]; then
    echo "Hooray."
fi


文章来源: run a unix shell command if the output doesn't have a specific number of lines
标签: shell