开发者

Execute script inside another exits outer script

I try to launch another app inside a bash script, but the app seems to exit my script so that the line exec $HOME/bin/sync-iosbeta; does not get executed. I have tried to put it outside the if as w开发者_StackOverflow社区ell.

if $HOME/bin/BetaBuilder.app/Contents/MacOS/BetaBuilder --args -i "${zip}" -o "${odir}" -u "${ourl}" -r "$PROJECT_FOLDER/README.txt" ; then
    echo "Wil sync"
    exec $HOME/bin/sync-iosbeta;
fi

echo "This text does not get printed either..";

I have also tried to use open to kick off the app, but then I have issues with passing the arguments, even with --args set.

I am running on Mac OS.


From the exec manual:

If command is specified, it replaces the shell. No new process is created.

Just remove exec and the ";":

if $HOME/bin/BetaBuilder.app/Contents/MacOS/BetaBuilder --args -i "${zip}" -o "${odir}" -u "${ourl}" -r "$PROJECT_FOLDER/README.txt" ; then
    echo "Wil sync"
    $HOME/bin/sync-iosbeta
fi

echo "This text does not get printed either..";

If sync-iosbeta is not being executed, then may be it hasn't the right permissions. Try:

if $HOME/bin/BetaBuilder.app/Contents/MacOS/BetaBuilder --args -i "${zip}" -o "${odir}" -u "${ourl}" -r "$PROJECT_FOLDER/README.txt" ; then
    echo "Wil sync"
    /bin/sh $HOME/bin/sync-iosbeta
fi

echo "This text does not get printed either..";


That's the whole point of exec. man bash: If command is specified, it replaces the shell.

just remove exec.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜