Shell é uma opção dada

1

Eu tenho alguns argumentos dentro de uma lista (matriz, por exemplo, $@ ) e gostaria de saber se a opção -v está na lista.

Em Python eu simplesmente faria:

verbose = "-v" in sys.argv

Como faço para conseguir isso no shell sem muito código?

    
por Matt3o12 18.07.2014 / 01:32

2 respostas

2

Em um script de shell, você chama a função getopts uma volta. Há um exemplo de código no manual do painel .

Observe que o seu código Python não está correto, exceto em casos extremamente simples. Ele detecta um argumento -v em qualquer lugar na linha, mesmo que seja o argumento de outra opção ou após argumentos não-opcionais. A maneira correta de analisar as opções no Python é com argparse ou optparse .

    
por 18.07.2014 / 01:39
1

Algo como:

for i in "$@"
do
  [ "$i" = -v ] && verbose=1
done
    
por 18.07.2014 / 01:38

Tags