반응형
하위 셸(subshell)을 명시적으로 사용하는 기법
Linux에서 하위 셸(subshell)을 명시적으로 사용하는 기법은 괄호 ()
로 명령어를 감싸는 것입니다. 이 방법은 현재 셸에서 독립된 새로운 셸 환경을 생성하여, 그 안에서 명령어들을 실행하게 합니다. 하위 셸을 사용하면, 하위 셸 내에서 이루어진 변경사항이 상위 셸에 영향을 미치지 않습니다. 이는 변수 할당, 현재 작업 디렉터리 변경 등의 작업을 격리된 환경에서 수행할 때 유용합니다.
하위 셸의 특징
- 환경 격리: 하위 셸에서 설정한 환경 변수나 디렉터리 변경 등이 상위 셸에 영향을 주지 않습니다.
- 독립 실행: 하위 셸은 상위 셸과 독립적으로 실행되므로, 하위 셸에서 실행한 프로세스는 상위 셸과 관련이 없습니다.
- 스크립트 내 사용: 스크립트 실행 중 특정 부분만을 독립적으로 처리하고 싶을 때 사용합니다.
기본 사용법
(명령1; 명령2; 명령3)
괄호 안에 세미콜론 ;
을 사용하여 여러 명령어를 연속적으로 실행할 수 있습니다. 각 명령은 하위 셸에서 순차적으로 처리됩니다.
예시
변수 범위의 격리
이 스크립트는 처음에 x
변수에 10을 할당합니다. 하위 셸에서 x
에 20을 할당하고 이를 출력하지만, 하위 셸을 빠져나오면 x
의 값은 여전히 10입니다.
현재 디렉터리 변경
이 명령어들은 현재 디렉터리를 출력한 다음, 하위 셸에서 /tmp
디렉터리로 이동하여 디렉터리를 출력합니다. 하위 셸에서 나오면, 원래 디렉터리 위치로 돌아와 마지막 pwd
명령으로 원래 디렉터리를 출력합니다.
복잡한 처리 분리
로그 파일에서 'error' 문자열을 찾아 error_log.txt
로 리다이렉션 한 후, 하위 셸에서 메시지를 출력합니다. 이 모든 작업은 상위 셸의 환경에 영향을 주지 않습니다.
정리
하위 셸을 사용하는 것은 작업의 범위를 명확하게 구분하고, 스크립트 내에서 변수와 환경 설정의 격리가 필요할 때 매우 유용합니다. 이를 통해 복잡한 스크립트를 더 안정적으로 관리할 수 있습니다.
반응형
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
[리눅스 팁] 프로세스 교체하기 (38) | 2024.05.14 |
---|---|
[리눅스 팁] 다양한 하위 셸 확인 (36) | 2024.05.13 |
[리눅스 팁] 프로그램 편집기를 종료하지 않고 테스트하는 방법 (37) | 2024.05.11 |
글도 정렬할 수 있는 sort (40) | 2024.05.09 |
[리눅스 팁] 백그라운드 job의 입력과 출력 (44) | 2024.05.06 |