我有一个有效的提交后挂钩 bash 脚本,该脚本将 Trac 实例与 SVN 提交的最新修订版同步。
#!/bin/sh
TRAC="/var/trac/"
REPOS="$1"
REV="$2"
if [[ "$REPOS" = "*TechReader*"]]; then trac-admin $TRAC"techreader" changeset added $REPOS $REV; fi
if [[ "$REPOS" = "*InteractEnglish*"]]; then trac-admin $TRAC"interactenglish" changeset added $REPOS $REV; fi
trac-admin $TRAC"egloo" changeset added $REPOS $REV
最后的trac-admin
调用根据需要运行并更新内部 Trac 实例,但是 if 语句似乎不会触发 Trac 客户端实例的更新。
同步的命令相同,那么条件有问题吗?
答案1
经过一些调整,我能够正确执行此操作。请注意,为了进行测试,我用简单的 s替换了您的trac-admin
调用。echo
#!/bin/bash
TRAC="/var/trac/"
REPOS="$1"
REV="$2"
if [[ "$REPOS" == *TechReader* ]]; then echo "first IF" $REPOS $REV; fi
if [[ "$REPOS" == *InteractEnglish* ]]; then echo "second IF" $REPOS $REV; fi
echo "done";
我做的改变
- 將 bin/sh 修改為 bin/bash
- 在 ]] 前添加一个空格
- 删除第二个参数周围的引号