eval 명령어

2019. 10. 29. 00:26임베디드/ubuntu

재귀적으로 명령어를 실행할 때 사용된다. 다음 쉘 스크립트는 재귀적으로 ls -al을 실행하지 못하는 것을 알 수 있다

$ a="ls -al"
$ echo $a
> ls -al

 

eval은 이때 사용하는데, eval "$(명령어)" 구조로 사용한다

$ a="ls -al"
$ eval "$(echo $a)"

 

 

두 개 이상의 명령어를 실행하고 싶으면, 새미콜론으로 구분할 수 있다. 그래서 다음과 같이 작성할 수 있다

$ a="ls -al; cat README.md;"
$ eval "$(echo $a)"

 

 

실제로 다음과 같은 복잡한 명령도 한 번에 실행할 수 있다

$ eval "$(ssh-agent -s)"