Daylogs/Unix
쉘 스크립트에서 $(명령)과 { 명령; }의 차이
ohgyun
2014. 8. 12. 23:54
발생일: 2014.05.23
키워드: bash, shell, shell script, sub shell, 서브쉘
문제:
쉘 스크립트에서 다른 명령을 실행하려고 하는데,
현재 쉘의 환경에서 해당 스크립트의 결과도 함께 출력되도록 하고 싶다.
어떻게 하면 될까?
해결책:
기존에는 다른 스크립트를 실행하려고 할 때 `명령`이나 $(명령) 과 같이 호출해왔었다.
이렇게 호출할 땐, 서브쉘에서 실행하는 거라 아웃풋을 현재 쉘에서 받을 수 없었는데,
찾아보니 현재 쉘에서 실행할 수 있는 방법이 있더라.
$(명령) - 서브쉘에서 실행
{ 명령; 명령; } - 현재 쉘에서 실행
위 문제 상황에서는, 서브 쉘에서 실행하는 것보다 현재 쉘에서 실행하는 게 더 적합했던 터라,
{ 명령; } 처럼 호출하는 걸로 처리했다.
반응형