bash scripting adiciona argumentos

2

Eu criei um script que aceita parâmetros e argumentos. Eu quero inserir o argumento --help.

Eu já sei como analisar argumentos normais com -, mas não sei como analisar os -.

para analisar os optiopns de test.sh -h i use a seguinte verificação

while getopts ":h" opt; 
do 
case $opt in
    h ) {
            echo "help!!!"
            exit 1
    } ;;
esac
done

Mas eu quero ter a opção de chamar o script com test.sh --help

Obrigado antecipadamente.

P.S. Eu estou usando o Ubuntu 12.04 ... mas isso realmente não importa.

Aparentemente, não posso responder à minha pergunta se tiver menos reputação. Eu encontrei a solução em um dos scripts .sh de / usr / bin

  if test $# = 1; then
    case "$1" in
      --help | --hel | --he | --h )
        func_usage; exit 0 ;;
      --version | --versio | --versi | --vers | --ver | --ve | --v )
        func_version; exit 0 ;;
    esac
  fi
    
por bioShark 17.02.2013 / 02:56

1 resposta

0

getopts não pode manipular argumentos longos:

$ ( set -- --help ; while getopts -- -help opt; do echo "$opt"; done )
-
h
e
l
p

Se você deseja lidar com argumentos longos, é necessário escrever seu próprio analisador.

A versão GNU do getopt suporta as opções longas, mas seria melhor não usá-lo; não é portátil, e quebra em certos tipos de argumentos. Por exemplo, ele não pode analisar adequadamente os argumentos com espaço em branco neles.

    
por 17.02.2013 / 03:01