Faz o awk usar bash com o comando system ()

3

Existe uma maneira de fazer o awk usar bash em vez de sh ao executar comandos do sistema usando a system() call?

Eu quero usar alguns recursos específicos do bash, como [[]] e < > operadores de comparação de string:

gawk 'BEGIN {system("if [[ \"porc\" == \"porc\" ]]; then echo yes; else echo no; fi")}'
sh: [[: not found
    
por haelix 16.06.2012 / 20:02

1 resposta

4

Se você quiser bash, você terá que corrigir o gawk ou chamar bash diretamente (a citação fica um pouco complicada):

gawk 'BEGIN {
    script="if [[ \"porc\" == \"porc\" ]]; then echo yes; else echo no; fi"
    system("bash -c '\''" script "'\''")
}'
    
por 16.06.2012 / 20:14