Форум Академгородка, Новосибирск > exit status и реальный exit, если что-то плохо
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: exit status и реальный exit, если что-то плохо
Форум Академгородка, Новосибирск > Компьютеры и сети > Операционные системы > Unix
Nox Metus
.
milfoil
$(cmd) запускает cmd в новом процессе (subshell). Соответственно exit совершает выход из дочернего шелла, но не из главного.
Я бы переписал это дело так
Код
GetLastRevision() {
  svn bla $guiRepPath | grep "Revision:" | awk 'BEGIN{FS="Revision: "}{print $2}'
  svnStatus=${PIPESTATUS[0]}
  if (( 0 != $svnStatus )); then
    echo 'Cannot get the last revision number' >&2
    return $svnStatus;
  fi
}

lastRevision=$(GetLastRevision) || exit
echo "The last revision of /bla/bla is $lastRevision"
milfoil
Цитата(Nox Metus @ 27.08.2010, 9:23) *
Я только ещё немного дописал


Это равнозначно тому что было. Т.к. если у exit опущен аргумент, то кодом возврата устанавливается тот код который возвратила последняя выполненная команда. Но если хочется явно обозначить код возврата я бы не стал таскать глобальную переменную из функции а написал:
Код
lastRevision=$(GetLastRevision) || exit $?

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.