我一直在尝试使它工作一段时间,但对于为什么它不起作用,我仍然感到困惑。我试图将功能添加到我的bashrc中,以将cd压缩到下一个包含文件或一个以上目录的目录。但是我无法通过此测试来使文件正常工作,并且我不理解问题所在。寻找 。-maxdepth 1 -type f在将其输入终端时有效,但在这里似乎不起作用。并且-z应该测试它是否为null,当我在空目录中调用它时应该为null。但是它只是返回每次检测到的文件...是否在doFilesExist中使用了点运算符?
function cdwn(){
# check if there are files or multiple directories in current wd
doFilesExist="find . -maxdepth 1 -type f"
if [ -z '$doFilesExist' ]; then
echo "no files detected"
else
echo "files detected"
fi
}
谢谢大家,似乎正在与以下人员合作:
function cdwn(){
# check if there are files or multiple directories in current wd
doFilesExist=`find . -maxdepth 1 -type f`
if [ -z "$doFilesExist" ]; then
echo "no files detected"
else
echo "files detected"
fi
}
但是我不满意,因为我不明白我为什么会遇到问题,您能建议一些我可以遵循的指南以获得更好的理解吗?我过去显然已经忘记或不了解事情!
看起来像是错误的引号。要将bash命令的结果放入变量中:
doFilesExist=$(find . -maxdepth 1 -type f)
或者
doFilesExist=`find . -maxdepth 1 -type f`
与if块也应改为部分[ -z "$doFilesExist" ]
:“里面一个单引号字符串没有(!!!!)解释,除了单引号封闭的引用”源。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句