这是我正在尝试编写的脚本的一部分。
如果目录存在就没有问题,但是如果不存在我不知道该怎么办。
有人知道如何解决这个问题。
谢谢
do echo "$number"
newdir="../FILE-ID/*/${number:2:1}${number:1:1}/+33$number"
nbrdir=$(ls -lrtd $newdir|wc -l)
echo "$nbrdir"
if [ "$nbrdir" -gt 1 ]; then
echo "$number"
echo "error 1.greater"
fi
if [ "$nbrdir" -eq 1 ]; then
echo " equal 1"
else
echo "equal 0"
fi
done
最佳答案
可以使用以下方法来测试文件(包括目录)是否存在:
if [[ -f ${newdir} ]]; then ...
或者如果您想专门针对目录进行测试,则可以使用另一个开关:
if [[ -d ${newdir} ]]; then ...
可以找到更全面的列表 here .
如果您的目录名称包含通配符并且可能匹配零个或多个,您可以使用:
nbrdir=$(ls -1d ${newdir} 2>/dev/null | wc -l)
这将为您提供匹配目录的计数。请注意,可能生成的任何错误消息都将定向到/dev/null,这可能正是您想要的,以避免错误扰乱您的输出。
关于linux - 脚本如果 ls -lrtd 返回文件或目录不存在该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29605765/