Check if directory does not exist
本问题已经有最佳答案,请猛点这里访问。
我编写了一个脚本来签入var/log目录,它将获取其中的所有目录,并检查这些目录中是否存在存档目录。如果一个归档目录不存在,我想创建它,但是一旦创建了它,脚本就会再次尝试创建它。
1 2 3 4 5 6 7 8 | vdir=$(sudo sh -c"find /var/log/ -maxdepth 1 -type d ! -name"archive"" ) for i in $vdir ;do echo $i if [[ ! -d $i/$arc ]];then sudo sh -c"mkdir $i/$arc" echo"$date:$HN:Creating:$i/$arc:directory">> logrotation.log fi done |
当我执行上面的代码时,它给出了这个错误。似乎脚本没有检查条件。
1 | mkdir: cannot create directory ‘/var/log/speech-dispatcher/archive’: File exists |
问题是你有两个
1 | if [ ! -d $i/$arc ];then |
另外一点:一些shell版本不处理紧靠右括号的
1 | if [ ! -d $i/$arc ] ; then |
编辑:由于以上没有帮助,更多的想法:
同样,您的脚本在运行时也可能无法实际读取
[在sudo下运行整个脚本比只运行某些脚本更有效。]