O getopts está sempre disponível para o Bash?

5

Posso usar getopts para analisar argumentos de linha de comando em meus scripts bash (não sh ) sem me preocupar com outra condição?

    
por Bryce Guinta 06.07.2016 / 17:00

2 respostas

7
$ type getopts
getopts is a shell builtin

getopts está embutido, por isso está presente em qualquer parte do bash.

Para ter certeza disso, você precisa verificar a documentação do bash para ver se é um recurso opcional - não é.

Mais precisamente, isso indica que getopts está disponível nesta versão específica do bash. Você precisa verificar as notas de versão antigas para ver quando getopts foi introduzido; isso aconteceu antes do alvorecer dos tempos (já estava presente no bash 1.14 e você teria dificuldade em encontrar uma versão antiga).

Ainda melhor, você pode contar com getopts mesmo em shells que não são bash, já que é exigido pelo POSIX .

    
por 07.07.2016 / 02:08
1

Sim, verifique man getopts . Mesmo que getopts seja um programa em /usr/bin Você pode ver que ele redireciona você para uma lista de comandos bash incorporados BASH_BUILTINS(1) e que a documentação bash se refere especificamente a getopts .

    getopts optstring name [args]
        ...

Para um uso mais detalhado de como usar o getopts, consulte "exemplo de como usar getopts no bash "

    
por 06.07.2016 / 17:00