У меня есть следующий фрагмент Bash в большем сценарии Bash:
if [ $COMMAND -le 1 ]; then
test $COMMAND -eq 0 && echo 1>&2 -e "\n${COLORED_ERROR} No command selected.${ANSI_NOCOLOR}"
echo ""
echo "Synopsis:"
echo " Script to simulate '$ModuleName' module testbenches with Riviera-PRO."
echo ""
echo "..."
test $COMMAND -eq 0 && exit 1 || exit 0
fi
`` `
Фокус на test $COMMAND -eq 0 && exit 1 || exit 0
Редактировать: Тип $COMMAND
является целым числом.
Есть ли лучший способ условно рассчитать код выхода?
Я нашел оператор c ? a : b
на некоторых сайтах, говорящих об арифметике Bash, но я не смог приступить к работе:
exit $(($COMMAND -eq 0 ? 1 : 0
Сообщение об ошибке:
. / Tools / GitLab-CI / Riviera-PRO.run.sh: строка 111: 1 -экв. 0? 1: 0: синтаксическая ошибка в выражении (маркер ошибки "0? 1: 0")
Обратите внимание, $COMMAND
использует несколько целочисленных значений:
- 0 - без команды
- 1 - помощь
- 2 - команда 1
- 3 - ...