bash-for循环中的比较目录

bash-for循环中的比较目录,bash,for-loop,directory,compare,Bash,For Loop,Directory,Compare,我正在创建一个bash脚本来自动执行备份web开发虚拟机中的虚拟主机的任务。我知道有很多更好的方法,比如使用备份管理器,但我只想要一种快速而肮脏的方法,对我的开发文件进行物理备份,以防我最终破坏虚拟机 现在,这是我现在写的我不是bash大师,所以要仁慈哈哈: cd sites for d in `find -maxdepth 1 -mindepth 1 -type d`; do mysqldump --user=XXXXXXXX --password=XXXXXXXX `echo $d | se

我正在创建一个bash脚本来自动执行备份web开发虚拟机中的虚拟主机的任务。我知道有很多更好的方法,比如使用备份管理器,但我只想要一种快速而肮脏的方法,对我的开发文件进行物理备份,以防我最终破坏虚拟机

现在,这是我现在写的我不是bash大师,所以要仁慈哈哈:

cd sites
for d in `find -maxdepth 1 -mindepth 1 -type d`; do
mysqldump --user=XXXXXXXX --password=XXXXXXXX `echo $d | sed -r 's/^.{2}//'` > `echo $d | sed -r 's/^.{2}//'`-`date +"%d%m%Y"`.sql
if [$d -eq "./r4.dev"]; then
zip -r -9 `echo $d | sed -r 's/^.{2}//'`-`date +"%d%m%Y"`.zip {$d,`echo $d | sed -r 's/^.{2}//'`-`date +"%d%m%Y"`.sql} -x *documentation*
else
zip -r -9 `echo $d | sed -r 's/^.{2}//'`-`date +"%d%m%Y"`.zip {$d,`echo $d | sed -r 's/^.{2}//'`-`date +"%d%m%Y"`.sql} -x *framework*
fi
rm `echo $d | sed -r 's/^.{2}//'`-`date +"%d%m%Y"`.sql
done
cd ..
该方案背后的逻辑如下:所有域都获得到我正在开发的PHP框架的符号链接,该框架位于另一个域r4.dev中。我想要的是开发文件所在的域压缩除文档文件夹之外的所有内容。在任何其他域中,我都希望压缩除指向框架的符号链接之外的所有内容,因为如果存在符号链接,它将备份整个框架文件夹,并且我希望得到最小大小的备份

备份命令本身可以工作,但失败的是目录比较。我一直在尝试不同的组合,比如$d-eq./r4.dev、$d=./r4.dev、$basename${d}-eq./r4.dev和其他一些组合,但似乎都不起作用

我相信解决办法很简单,但我现在似乎看不出来。你能给我一个提示,如何更正比较,使它像我预期的那样工作吗

提前感谢,, 胡里奥

你需要空间。[$d=./r4.dev]假设find返回的路径是。/r4.dev或course;然后,它成功了。谢谢:查看一下简单错误的检查。尽管编写脚本的方式可能会有一些其他问题,请参见和