-6ren">
gpt4 book ai didi

linux - Bash IF 通过虽然它不应该

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:28 25 4
gpt4 key购买 nike

我正在尝试做一个简单的 if,但不知何故它不起作用。

代码:

if [ `cat /tmp/rcrt_unusable_indexes.log | grep -i "ORA-" | wc -l` > 0 ]
then
echo "ERROR at in /tmp/rcrt_unusable_indexes.log . EXIT script." >> ${LOG_PATH}
exit 1;
fi

测试:

bash-4.1$ cat /tmp/rcrt_unusable_indexes.log | grep -i "ORA-" | wc -l
0
bash-4.1$ if [ `cat /tmp/rcrt_unusable_indexes.log | grep -i "ORA-" | wc -l` > 0 ]
> then
> echo 1
> fi
1 <------- this is the result

怎么可能呢?

最佳答案

不需要使用wc 来检查结果。如果找到任何匹配项(对应于非空输出),grep 将成功,否则失败。直接测试grep的退出状态,而不是测试[命令的退出状态。

if grep  -q -i "ORA-" /tmp/rcrt_unusable_indexes; then

-q 阻止 grep 实际产生任何输出,当您只是检查退出状态时不需要这些输出。

关于linux - Bash IF 通过虽然它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com