Existe uma maneira eficaz de testar se um script usa apenas recursos POSIX?

2

Se eu quisesse ter certeza de que um script que escrevi seja o mais portátil possível e use apenas os recursos POSIX e Não, digamos, os recursos bash , há uma maneira explícita de verificar isso?

Obviamente, eu poderia tentar executá-lo em um shell diferente do meu shell usual, mas isso só confirma que meu script é limitado a recursos suportados por esse shell ... recursos que, eles mesmos, podem ir além de POSIX .

    
por Dancrumb 31.07.2017 / 15:40

2 respostas

3

O modo POSIX de BASH , facilmente executado:

bash --posix /PathToYourScript

para entrar nele e executar seu script lá.

Ele deve lhe dar uma ideia bastante clara de se o seu Script é POSIX - compatível ou não.

Pelo que li, DASH , que é padrão ( sh é um símbolo link para dash ) no Ubuntu / Debian e derivados é um shell POSIX muito estrito, que pode valer a pena tentar, porque é ainda mais estrito que o BASH em POSIX mode.

    
por 31.07.2017 / 18:39
1

Uma abordagem alternativa para a resposta de Tim Schumacher seria copiar e colar o script em ShellCheck.net , alterando apenas a Shebang para #!/bin/sh e estudando cuidadosamente a saída.

Essa abordagem pode ser ainda melhor caso você esteja codificando algo e esteja procurando não apenas a não-conformidade com POSIX , mas também para outros erros e sugestões. Você ficará impressionado, especialmente, se usá-lo diariamente.

Claro, você pode fazer:

bash --posix /PathToYourScript

Mas pela minha experiência, DASH , que é padrão no Ubuntu / Debian e derivados ( sh é um link simbólico para dash ), é um shell POSIX muito estrito e ainda mais estrito que BASH em POSIX .

    
por 03.02.2018 / 13:05

Tags