Regex na instrução case [duplicada]

0

Eu estou tendo dificuldade em fazer com que as correspondências regex funcionem em uma declaração de caso.

Exemplo de código:

#!/bin/bash                          

str='    word1 word2'

echo "With grep:"
echo "$str" |grep '^\s*\<word1\>'

echo "With case:"
case "$str" in
    '^\s*\<word1\>') echo "$str" ;;
esac

O exemplo funciona com o grep, mas não com o caso ... Estou confuso, porque algumas expressões regulares mais simples funcionam com maiúsculas e minúsculas. O caso usa uma sintaxe diferente para regex? Eu não estou apenas escapando das coisas corretamente?

    
por Mud Bungie 10.06.2016 / 19:27

1 resposta

3

Isso ocorre porque case não usa o regex, mas sim o Pathname Expansion . Você pode aprender mais sobre man page ou sobre Bash Manual de Referência .

    
por 10.06.2016 / 19:40