Daylogs/Unix

쉘 스크립트에서 $(명령)과 { 명령; }의 차이

ohgyun 2014. 8. 12. 23:54
발생일: 2014.05.23

키워드: bash, shell, shell script, sub shell, 서브쉘

문제:

쉘 스크립트에서 다른 명령을 실행하려고 하는데,
현재 쉘의 환경에서 해당 스크립트의 결과도 함께 출력되도록 하고 싶다.

어떻게 하면 될까?


해결책:

기존에는 다른 스크립트를 실행하려고 할 때 `명령`이나 $(명령) 과 같이 호출해왔었다.

이렇게 호출할 땐, 서브쉘에서 실행하는 거라 아웃풋을 현재 쉘에서 받을 수 없었는데,
찾아보니 현재 쉘에서 실행할 수 있는 방법이 있더라.


    $(명령) - 서브쉘에서 실행

    { 명령; 명령; } - 현재 쉘에서 실행


위 문제 상황에서는, 서브 쉘에서 실행하는 것보다 현재 쉘에서 실행하는 게 더 적합했던 터라,
{ 명령; } 처럼 호출하는 걸로 처리했다.
반응형