Поиск…


Простой регистр

В простейшей форме, поддерживаемой всеми версиями bash, case statement выполняет случай, соответствующий шаблону. ;; оператор прерывается после первого матча, если таковой имеется.

#!/bin/bash

var=1
case $var in
1)
  echo "Antartica"
 ;;
2)
  echo "Brazil"
 ;;
3)
  echo "Cat"
 ;;
esac

Выходы:

Antartica

Заявление о случаях с провалом

4,0

Начиная с bash 4.0 был введен новый оператор ;& который обеспечивает провал механизма.

#! / Bin / Баш

var=1
case $var in
1)
  echo "Antartica"
  ;&
2)
  echo "Brazil"
  ;&
3)
  echo "Cat"
  ;&
esac

Выходы:

Antartica
Brazil
Cat

Проваливайте, только если последующие шаблоны

4,0

Начиная с Bash 4.0, был введен еще один оператор ;;& который также обеспечивает провал только в том случае, если совпадают шаблоны в последующих операторных утверждениях (если они есть).

#!/bin/bash

var=abc
case $var in
a*)
  echo "Antartica"
  ;;&
xyz)
  echo "Brazil"
  ;;&
*b*)
  echo "Cat"
  ;;&
esac

Выходы:

Antartica
Cat

В приведенном ниже примере abc соответствует первому и третьему случаям, но не второму случаю. Итак, второй случай не выполняется.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow