1

我打算在脚本中使用 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,无论它是否找到可执行文件

4

1 回答 1

6

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

if find /usr/bin /usr/sbin /bin /sbin -name ntpd | grep -q ^ ; then
    echo Found
else
    echo Not found
fi
于 2018-02-15T07:12:07.453 回答