쉘 스크립트(Shell Script) 기초(4) - 서브 쉘(Sub Shell)
Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.
아래는 dir1
, dir2
, dir3
디렉토리를 만들어 각각의 디렉토리에 file.txt
파일을 추가하는 스크립트이다.
#!/bin/bash
mkdir dir1
mkdir dir2
mkdir dir3
for dir in dir1 dir2 dir3
do
cd $dir
touch file.txt
cd .. # 주목
done
for 문이 끝날 때마다 다시 부모 디렉토리로 돌아가기 위해 cd ..
명령어가 필요하다.
이 때 서브 쉘(Sub Shell) 을 이용하면 더 깔끔하게 스크립트를 작성할 수 있다. 서브 쉘 은 쉘에서 일시적인 분신을 만들어 그 쪽에서 명령어를 실행하는 방법이다. 서브 쉘 로 실행하고 싶은 명령어열 전체를 괄호로 감싸면 된다.
#!/bin/bash
mkdir dir1
mkdir dir2
mkdir dir3
for dir in dir1 dir2 dir3
do
(cd $dir
touch file.txt)
done