Как я могу использовать условные конструкции в операторе case bash?

Очень близкие вопросы задавались раньше. Вот ссылки на некоторые из ответов: https://askubuntu.com/a/369920/248158 https://askubuntu.com/a/205447/248158 https://askubuntu.com/ a / 226861/248158 https://askubuntu.com/a/143406/248158 https://unix.stackexchange.com/a/25713

Мне нравится это объяснение:

Такие сообщения распространены с приложениями Gnome и не обязательно указывают на ошибку. Gnome использует подход к пользователям; целевая аудитория не будет запускать приложение с терминала и поэтому не увидит эти сообщения. Переназначать вывод ошибок из приложений Gnome в файл журнала, если вам это действительно интересно, или в / dev / null в противном случае.

Источник: Gilles.

И это тоже приятно:

Такие сообщения распространены с приложениями Gnome и не обязательно указывают на ошибку. Gnome использует подход к пользователям; целевая аудитория не будет запускать приложение с терминала и поэтому не увидит эти сообщения. Перенести вывод ошибок из приложений Gnome в файл журнала, если вам это действительно интересно, или в / dev / null в противном случае.

В этом случае GTK хочет быть более строгим относительно включения единиц измерения. Он говорит разработчику, что GTK предполагает, что единицы являются пикселями, что является точным предположением, которое разработчик программного обеспечения сделал в первую очередь.

Эта ошибка указывает, что программное обеспечение использует абсолютно корректные вызовы библиотеки GTK с более новой версией библиотеки GTK. Иногда во время разработки программного обеспечения желательно избавиться от «старого пути», чтобы делать что-то, сохраняя обратную совместимость. Это достигается путем маркировки нежелательных вызовов, обесцененных. Это говорит разработчику, что их код отлично подходит для этой версии, но в будущем их код нужно будет обновить для работы с новой версией библиотеки, возможно, с несколькими версиями в будущем.

Источник : Gilles

GLib-CRITICAL **: g_slice_set_config: assertion

Кстати, если вы запустите Firefox из терминала, вы увидите ужасное сообщение вроде этого:

Но похоже чтобы быть безвредным в соответствии с комментарием в Bug # 833117.

1
задан 27 July 2016 в 15:22

1 ответ

Это похоже на ответ @ imjoris, но я сломал математику. Он находится в тройном порядке, где 0 - 0, 1 - положительный, а по умолчанию отрицательный. Я изменил ваш список, чтобы сделать его более ясным - надеюсь, что вы не покончили с собой: -)

case $((
  sumcreate_retval == 0 ? 0 :
  sumcreate_retval >  0 ? 1 :
  2
  ))$((
  movesum_retval == 0 ? 0 :
  movesum_retval >  0 ? 1 :
  2
)) in
  00) script_retcode="$success_return" ;;
  01) script_retcode="$movewarn_err" ;;
  02) script_retcode="$movecrit_err" ;;
  10) script_retcode="$createwarn_err" ;;
  11) script_retcode="$both_crit_err" ;;
  12) script_retcode="$createwarn_movecrit_err" ;;
  20) script_retcode="$createcrit_err" ;;
  21) script_retcode="$createcrit_movewarn_err" ;;
  22) script_retcode="$both_warn_err" ;;
esac

Кстати, StackOverflow, вероятно, лучший сайт для сложных вопросов сценариев, подобных этим.

1
ответ дан 23 May 2018 в 07:44

Другие вопросы по тегам:

Похожие вопросы: