TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #549 729
case против if: где ветвление читается лучше

▪️ Когда лучше if. Если проверяешь: файл существует или нет, код возврата команды, число больше/меньше или несколько логических условий


if [[ -f config.conf ]]; then
echo "Конфиг найден"
elif [[ -d config.conf ]]; then
echo "Это каталог"
else
echo "Ничего нет"
fi


Здесь if читается естественно.

▪️ Когда лучше case. Если у тебя есть один входной параметр и несколько режимов:


cmd="$1"

case "$cmd" in
start)
echo "Запуск"
;;
stop)
echo "Остановка"
;;
restart)
echo "Перезапуск"
;;
*)
echo "Неизвестная команда"
exit 1
;;
esac


Для CLI это почти всегда лучше, чем цепочка:


if [[ "$cmd" == start ]]; then
...
elif [[ "$cmd" == stop ]]; then
...


▪️ case особенно хорош для шаблонов


case "$file" in
*.log) echo "Лог" ;;
*.conf) echo "Конфиг" ;;
*.sh) echo "Скрипт" ;;
esac


if так не умеет читатьcя так же чисто.

BashTex 📱 #bash
  • 🔥 6
  • 👍 4
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →