임베디드/ubuntu
eval 명령어
수리노을
2019. 10. 29. 00:26
재귀적으로 명령어를 실행할 때 사용된다. 다음 쉘 스크립트는 재귀적으로 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)"