zsh 条件语句帮助

zsh 条件语句帮助

现在感觉有点傻:

为什么我的条件总是正确的?

我试过了

# this should let me know what's not a directory or 
# symbolic link.
whoa=`find ${MUSICDIR} ! -type l ! -type d | wc -l`

# I would expect if it's 0 (meaning nothing was found) that
# one of these statements would evaluate to false, but so far
# it's always evaluating to true
if [[ "${whoa}" != "0" ]]
    do something
fi
if [[ ${whoa} -gt 0 ]]
    do something
fi

我错过了什么?

答案1

事实证明,我遗漏了 if 语句后的“then”。

应该

if [[ "${whoa}" != "0" ]]
then
    do something
fi

答案2

反引号收集子进程的标准输出,并将whoa包含文本,而不是错误级别。您可以使用它$?来获取最后一个命令的错误级别。

但是如果您使用 find,您可以使用其exec功能来做一些事情。

另外,您可以使用f文件类型来查找常规文件。

相关内容