首次调用gradlew
后,以下脚本将终止。这是为什么?
#!/usr/bin/env sh
find $PWD -maxdepth 1 -type d | while read d; do
cd $d
echo "cd" $d
if [ -e "pom.xml" ]; then
echo $d " contains pom.xml"
mvn clean
echo "cleaned" $d
fi
if [ -e "gradlew" ]; then
echo $d " contains gradlew"
./gradlew -q clean
echo "cleaned" $d
fi
done
输出:
$ ./clean-all
cd /home/user/code
cd /home/user/code/smstest
/home/user/code/smstest contains gradlew
cleaned /home/bpiech/code/smstest
如果我评论gradle调用,它适用于每个Maven项目。
最佳答案
将while循环更改为for-in循环解决了我的问题。不过,很高兴知道为什么它会以这种方式工作。
#!/usr/bin/env sh
for d in $(find $PWD -maxdepth 1 -type d); do
cd $d
echo "cd" $d
if [ -e "pom.xml" ]; then
echo $d "contains pom.xml"
mvn clean
echo "cleaned" $d
fi
if [ -e "gradlew" ]; then
echo $d "contains gradlew"
./gradlew clean
echo "cleaned" $d
fi
done
关于bash - 作为bash脚本的一部分调用gradle会终止该脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618024/