无法在bash脚本中循环运行与gradle相关的命令

时间:2019-03-20 06:40:41

标签: bash shell gradle command-line

我已经编写了shell-script,使用while循环和gradle clean build命令来构建特定文件中提到的所有项目。

这是它的样子:

echo -e "\Building all projects"
filename="projects"      #File Containing all projects name to build
workdir=$(pwd)
while read -r line; do
    name="$line"
    echo -e "\ngradle build repo - $name"
    cd $workdir/$name
    gradle clean build 
done < "$filename"

这是项目文件的内容:

core
dal
dao
web
ui

这是我的目录结构

src
|-script.sh
|-core
|  |-build.gradle
|  |-gradle.properties
|  |-src
|  |-otherstuff
|
|-dal
|  |-build.gradle
|  |-gradle.properties
|  |-src
|  |-otherstuff
|
|-dao
|  |-build.gradle
|  |-gradle.properties
|  |-src
|  |-otherstuff
|
|-same repeats for web and ui

所以我希望脚本读取文件projects并从该文件进入所有提到的folders并在该文件夹中发出命令gradle clean build

除了gradle命令外,一切正常,并且按预期工作,无论第一个项目(core的构建是成功还是失败,它都会使脚本中断循环并退出。

因此它仅输出第一个项目的输出,而不适用于其他所有项目。

但是,

如果我尝试在后台运行它,则效果很好;即 代替

gradle clean build

如果我发出

gradle clean build &

工作正常;尽管在这种情况下,输出是乱码。

任何人都可以调查一下并帮助我吗?

先谢谢了。

0 个答案:

没有答案