シェルスクリプト内でgradleを呼ぶとそれ以降の処理がなされない
例えば以下のようなシェルスクリプト(hoge.sh)があるとします。
#!/bin/sh
gradle build #<- build はなくても結果は同じ
echo "hello"
プロンプトで
./hoge.sh
を行うと、ビルドを行い ハローといってくれます。
しかし、
cat hoge.sh | /bin/sh
を行うと、gradle build
はBUILD SUCCESSFULと表示されるのですが、ハローまで到達せずにスクリプトが終わっている模様です。
仮に、
cat hoge.sh | /bin/sh -i
としてみますと、
sh-4.2$ #!/bin/sh
sh-4.2$ gradle build
..... Gradleのメッセージ
sh-4.2$ exit
と出ています。このexit
のせいでecho "hello"
が無視されているようです。
用いているGradleは3.2.1で 2.1だと同じようにしてもexit
は呼ばれずハローが帰ります。
スクリプトの2行目のgradle build
に何か加えたり cat hoge.sh | /bin/sh
に何かしたりするなどしてexit
を回避できないでしょうか?