O que significa colchetes na declaração de caso bash?

2

link MOSTRA

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

O que os colchetes indicam? Outros sites os omitem (ou seja, não há [[(] etc.)

link mostra o seguinte: sem uso de [[(] etc.

case expression in
    pattern1 )
        statements ;;
    pattern2 )
        statements ;;
    ...
esac

Obrigado pelas respostas detalhadas abaixo. Estou extremamente agradecido pelo esclarecimento.

    
por Steve Blumenfeld 28.10.2014 / 23:04

2 respostas

7

Leia a fonte autorizada: o manual da GNU bash link

Os colchetes indicam coisas opcionais.

As únicas partes obrigatórias são: case word in esac - este é um bash válido que não faz nada.

    
por 28.10.2014 / 23:12
4

Os colchetes são uma convenção comum na documentação para indicar que o que está dentro do colchete é opcional. Eles fazem parte da meta-sintaxe usada pela documentação.

A notação ... é também metassyntax; indica que o elemento precedente pode ser repetido.

Outros metassyntax comuns incluem parênteses para agrupamento e | para significar "ou". Aqui, acontece que os parênteses e a barra vertical fazem parte da sintaxe, enquanto os colchetes são todos parte do metasyntax.

Os bons manuais compõem a meta-sintaxe em uma fonte diferente da sintaxe. Nem a página da Web que você está lendo nem o manual do bash que ela plagia faz então na sua descrição do comando case . O manual do bash define as palavras word , pattern e command-list em itálico; isso também é metasyntax, indicando que essas palavras são uma descrição do que acontece nessa posição, em vez de as palavras serem literalmente digitadas como case , in e esac .

case palavra in [[ ( ] padrão [ | padrão ] ... ) lista de comandos ;; ] ... esac

    
por 29.10.2014 / 02:00