case "$1","$name" in
-py | --python | --python3,*) if [[ "$name" =~ \..+$ ]]; then
Isso não pega coisas, o que na verdade deveria, como...
USERNAME@HOSTNAME:~$ myscript --python surfer
Coisa engraçada: simplifique o multipadrão condicional para…
--python,*) if [[ "$name" =~ \..+$ ]]; then
e funciona! Com a perspectiva amargamente repetitiva de ter que colocar essa seção 3 vezes: primeiro para -py
, depois para --python
e, finalmente, --python3
para capturar todos os padrões.
Mas a outra coisa é - o contrário:
case "$1" in
-py | --python | --python3) if [[ ! "$name" =~ \.py$ ]]; then
Tudo bem, isso funciona! Então, isso refuta minha suposição de que a sintaxe de vários padrões pode estar incorreta, pode precisar que os espaços sejam removidos ou qualquer tipo de colchete em torno da soma de todos os 3 padrões seja interpretado como um grupo, onde o primeiro OU o segundo OU o terceiro padrão deve ser capturado.
E com tudo isso eu realmente tenho a impressão de que você não pode ter ambos no GNU bash, versão 4.3, multi padrão E além dessa condicional uma segunda condicional como "$name". Poderia ser isso? Ou cometi um erro ao tentar conseguir isso?