Pracuję nad skryptem bash, który chciałbym pracować dla kilku typów VCS. Zastanawiam się nad przetestowaniem, czy katalog jest repozytorium dla systemu, uruchamiając typowe polecenie info i sprawdzając kod powrotu, sukces lub błąd. W pseudokodzie:
if a svn command succeded;
Then run svn commands
elif a darcs command succeded;
Then run darcs commands
elif a mercurial command succeded;
then run hg commands
else
something else
fi
Mogę uruchomić polecenie, np.
darcs show repo
I użyć, $?
aby uzyskać jego kod powrotu.
Moje pytanie brzmi: czy istnieje dobry sposób na uruchomienie i zwrócenie numeru kodu powrotu w jednym wierszu? na przykład
if [ 0 -eq `darcs show repo`$? ];
Czy muszę zdefiniować funkcję?
Dodatkowym wymaganiem jest wydrukowanie zarówno stderr, jak i stdout.