【问题标题】:exit status for Linux find command always shows successLinux find 命令的退出状态总是显示成功
【发布时间】:2018-02-15 07:03:58
【问题描述】:

我打算在脚本中使用 Linux“查找”命令。如果“查找”命令在提到的任何路径中找到可执行文件,而不是确切的路径,我就会感到困扰。我正在测试以下内容:

find /usr/bin /usr/sbin /bin /sbin -name ntpd > /dev/null 2>&1; echo $?
0

find /usr/bin /usr/sbin /bin /sbin -name ntp > /dev/null 2>&1; echo $?
0

find /usr/bin /usr/sbin /bin /sbin -name ntpd
/usr/sbin/ntpd

# find /usr/bin /usr/sbin /bin /sbin -name ntp
#

为什么find 给出的退出状态为0,在这两种情况下,无论它是否找到可执行文件

【问题讨论】:

    标签: bash shell find exitstatus


    【解决方案1】:

    find 在找不到指定文件时不会更改退出状态。您可以将其输出通过管道传输到 grep 以检查它是否输出任何内容:

    if find /usr/bin /usr/sbin /bin /sbin -name ntpd | grep -q ^ ; then
        echo Found
    else
        echo Not found
    fi
    

    【讨论】:

    • @choroba 这很酷。很聪明。万分感谢。这为我节省了至少 3-4 行代码:)
    猜你喜欢
    • 2013-10-27
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2017-05-20
    • 2011-06-21
    • 2018-09-18
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多