O que é o caractere de pipe “x | y)” na instrução case?

1

Em um script /etc/network/if-up.d/avahi-autoipd no meu sistema, encontro declarações como esta:

case "$ADDRFAM" in
  inet|NetworkManager) ;;
  *) exit 0
esac

case "$METHOD" in
static|dhcp|NetworkManager) ;;
*) exit 0
esac

O caractere de canal | parece a lógica "or", mas não consigo encontrar essa regra no guia. Eu só posso encontrar | usado como o pipe de comando e o "bitwise ou" para o inteiro aritmético.

Alguém pode me dizer qual é o uso neste caso?

    
por platinor 08.08.2013 / 08:50

1 resposta

6

Nas cláusulas padrão de uma declaração de caso, | significa precisamente or .

Do manual do bash em case :

The syntax of the case command is:

case word in [ [(] pattern [| pattern]…) command-list ;;]… esac 

The ‘|’ is used to separate multiple patterns, and the ‘)’ operator terminates a pattern list.

    
por 08.08.2013 / 08:53