Bash 스크립트에 사용되는 명령 실행

Bash 스크립트에 사용되는 명령 실행

Bash 스크립트에서 tcpdump 명령을 실행하려고 하는데 다음 오류가 계속 발생합니다.tcpdump: illegal token: "

내 스크립트는 다음과 같이 요약될 수 있습니다.

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

print 를 실행할 때 echo $a실행 sudo tcpdump "icmp"하면 $a오류가 발생합니다. 인쇄된 메시지를 복사하여 붙여넣으면 명령이 제대로 작동합니다.

또한 명령을 배열에 넣고 다음을 호출하여 실행해 보았 ${array[@]}으나 문제가 해결되지 않았습니다.

누구든지 해결책이 있습니까?

답변1

노력하다

eval "$a"

~에 따르면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.

관련 정보