Próbuję uruchomić inną aplikację w skrypcie bash, ale wydaje się, że aplikacja wychodzi z mojego skryptu, więc wiersz exec $HOME/bin/sync-iosbeta;
nie zostaje wykonany. Próbowałem również umieścić to na zewnątrz.
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..";
Próbowałem również użyć open
do uruchomienia aplikacji, ale potem mam problemy z przekazaniem argumentów, nawet przy ustawionym --args
.
Używam systemu Mac OS.
2 odpowiedzi
Z instrukcji exec:
Jeśli podano polecenie, zastępuje powłokę. Nie jest tworzony żaden nowy proces.
Po prostu usuń exec i ";":
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..";
Jeśli sync-iosbeta nie jest uruchamiany, być może nie ma odpowiednich uprawnień. Próbować:
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..";
To jest cały sens egzekutywy. man bash
: Jeśli podano polecenie, zastępuje powłokę.
Po prostu usuń exec
.
Podobne pytania
Nowe pytania
bash
W przypadku pytań dotyczących skryptów napisanych dla powłoki poleceń Bash. W przypadku skryptów powłoki z błędami / błędami składniowymi, sprawdź je w programie shellcheck (lub na serwerze web shellcheck pod adresem https://shellcheck.net) przed wysłaniem tutaj. Pytania dotyczące interaktywnego korzystania z Bash częściej dotyczą tematu Super User niż Stack Overflow.
/package-app: line 94: /BetaBuilder.app/Contents/MacOS/BetaBuilder -i DeploymentTest-7910-7910.zip -o DeploymentTest-DeploymentTest-7910-7910 -u DeploymentTest-DeploymentTest-7910-7910: No such file or directory BetaBuilder encountered an error. Check system logs.
Działa, jeśli uruchomię dokładnie to samo polecenie w terminalu. Dzięki za twoją odpowiedź!