Linux 查找命令的退出状态始终显示成功
exit status for Linux find command always shows success
我打算在脚本中使用 Linux "find" 命令。如果 "find" 命令在提到的任何路径中找到可执行文件,而不是关于确切路径,我只是很烦恼。我正在测试以下内容:
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
的退出状态,在这两种情况下,无论是找到还是没有找到可执行文件
当找不到指定文件时,find
不会改变退出状态。您可以将其输出通过管道传输到 grep
以检查它是否输出任何内容:
if find /usr/bin /usr/sbin /bin /sbin -name ntpd | grep -q ^ ; then
echo Found
else
echo Not found
fi
我打算在脚本中使用 Linux "find" 命令。如果 "find" 命令在提到的任何路径中找到可执行文件,而不是关于确切路径,我只是很烦恼。我正在测试以下内容:
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
的退出状态,在这两种情况下,无论是找到还是没有找到可执行文件
find
不会改变退出状态。您可以将其输出通过管道传输到 grep
以检查它是否输出任何内容:
if find /usr/bin /usr/sbin /bin /sbin -name ntpd | grep -q ^ ; then
echo Found
else
echo Not found
fi