Alguém pode esclarecer: 'case': $ PATH: 'in' in script?

1

Eu não sou especialista em scripts Unix. Uma resposta para outro pergunta sugere usar o seguinte trecho de código em um script:

case ":$PATH:" in
  *:$HOME/mydir:*) echo it is in the path;;
  *) echo not there ;;
esac

O propósito deste código é verificar se $HOME/mydir está em $PATH , mas os exemplos em isto e isso sugere correspondência exata 'em vez de' contém '.

Como o 'caso' está operando aqui? Obrigado.

    
por Jérôme Verstrynge 19.02.2012 / 10:54

1 resposta

5

case é uma correspondência exata, mas * significa "corresponde a qualquer coisa" e o caso começa e termina com * , portanto, ele corresponderá a qualquer string que contenha :$HOME/mydir: . O segundo caso corresponderá a qualquer coisa, mas somente se a primeira condição não corresponder a

    
por 19.02.2012 / 11:03