다양한 하위 셸 확인
이 이미지는 몇 가지 다른 쉘 명령어를 실행하는 과정을 보여줍니다. 각각의 명령어는 BASH_SUBSHELL
환경 변수의 값을 확인하는 것을 포함하고 있습니다. 이 변수는 현재 쉘에서 몇 번째 하위 셸(subshell)이 실행되고 있는지를 나타냅니다.
- 첫 번째 명령:이 명령은 현재 쉘에서 하위 셸의 수를 출력합니다. 결과는 0
으로, 이것은 최상위 쉘에서 실행되고 있음을 의미합니다.
echo $BASH_SUBSHELL
- 두 번째 명령:이 명령은 괄호를 사용하여 하위 셸에서 실행됩니다. 괄호 안에 있는 echo $BASH_SUBSHELL
은 하위 셸에서 실행되기 때문에 1
을 출력합니다. 이는 한 단계 하위 셸에서 실행되고 있음을 나타냅니다.
(echo $BASH_SUBSHELL)
- 세 번째 명령:여기서 $(...)
구문은 명령어 치환(command substitution)을 사용하여, 내부 명령의 출력을 외부 echo
의 입력으로 전달합니다. 내부 echo $BASH_SUBSHELL
도 괄호 없이 하위 셸에서 실행되므로 1
을 출력합니다.
echo $(echo $BASH_SUBSHELL)
- 네 번째 명령:이 명령은 프로세스 치환(process substitution)을 사용합니다. <(...)
구문은 하위 셸에서 명령을 실행하고 그 출력을 파일처럼 취급합니다. 여기서 echo $BASH_SUBSHELL
은 하위 셸에서 실행되어 1
을 출력하고, cat
명령은 그 결과를 읽어서 표시합니다.
cat <(echo $BASH_SUBSHELL)
정리
이 명령들은 쉘 스크립트에서 다양한 하위 셸 및 명령어 치환 기법을 이해하고 사용하는 데 도움이 됩니다. 각기 다른 방법으로 하위 셸이 어떻게 동작하는지 보여주며, 쉘 스크립트를 더 효과적으로 작성하는 데 필요한 이해를 제공합니다.
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
[리눅스 팁] 'exec'를 이용한 리디렉션 (43) | 2024.05.15 |
---|---|
[리눅스 팁] 프로세스 교체하기 (38) | 2024.05.14 |
[리눅스 팁] 하위 셸(subshell)을 명시적으로 사용하는 기법 (41) | 2024.05.12 |
[리눅스 팁] 프로그램 편집기를 종료하지 않고 테스트하는 방법 (37) | 2024.05.11 |
글도 정렬할 수 있는 sort (40) | 2024.05.09 |