쉘 스크립트(Shell Script) 기초(1) - 환경변수, 종료 상태 변수($?)

Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.

환경 변수

$ env 명령어를 통해 사용가능한 환경 변수들을 확인할 수 있다.

#!/bin/bash

mkdir ${HOME}/directory  
cd ${HOME}/directory  
touch file.txt  
echo "My name is ${USER}" > file.txt  

종료 상태 변수($?)

$? 은 바로 전에 실행한 명령어의 종료 상태를 나태내는 변수이다. 0 은 정상 종료를 의미하고, 그 외의 값(1 ~ 255)은 이상 종료를 의미한다.

#!/bin/bash

dirname="directory"  
filename="file.txt"

touch_new_file() {  
  cd $dirname
  touch $filename
  echo "Hello World" > $filename
}

error_message() {  
  echo "The directory already exists."
}

mkdir $dirname  
if [ $? = 0 ]  
then  
  touch_new_file
else  
  error_message
fi  

종료 상태 변수를 사용하지 않고 &&, || 을 사용하여 더 간단하게 표현할 수 도 있다.

#!/bin/bash

# ...위와 동일...

mkdir $dirname && touch_new_file || error_message  

출처