Comando de execução usado no script bash

1

Estou tentando executar um comando tcpdump em um script bash, mas continuo recebendo este erro: tcpdump: illegal token: "

Meu script pode ser resumido por:

a='sudo tcpdump "icmp"' echo $a $a

Quando executo o echo $a print sudo tcpdump "icmp" , mas quando $a é executado, recebo o erro. Quando copio e colo a mensagem impressa, o comando é executado normalmente.

Eu também tentei colocar o comando em um array e executá-lo chamando: ${array[@]} , mas isso não resolveu o problema.

Alguém tem uma solução?

    
por Liftu 15.11.2017 / 15:37

1 resposta

0

tente

eval "$a"

de acordo com man bash

   eval [arg ...]
          The args are read and concatenated together into a single command.  This command is then read and executed by the shell, and its exit status is returned  as  the  value  of
          eval.  If there are no args, or only null arguments, eval returns 0.
    
por 15.11.2017 / 15:50