Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.
명령어 치환
$(명령어열) 또는 `명령어열`
쉘 스크립트에서는 명령어열 실행 결과(표준 출력)을 문자열로 치환할 수 있다.
#!/bin/bash
today=$(date +%Y-%m-%d)
filename="file-${today}.txt"
touch ${filename}
echo "Hello World" > $filename
echo "End" >> $filename
echo "마지막 줄은 '$(tail -n 1 $filename)' 입니다."
for 문에서도 아래와 같이 명령어 치환을 사용할 수 있다.
#!/bin/bash
for filename in $(cd ${HOME}/log; ls *.log | grep -v error.log)
do
echo $filename
done
산술 확장
$(( 계산식 ))
$ [ $(( 3 * (2 + 10) )) -gt $(( 5 * 7 )) ] # 36 > 35
$ echo $?
0
$ test $(( (2 + 10) / 3 )) -le $(( 1 + 2 )) # 4 <= 3
$ echo $?
1
* [
또는 test
: 판정 결과를 종료 상태 변수로 반환해주는 명령어
산술 확장을 이용한 수식의 계산 결과를 쉘 스크립트에서도 이용할 수 있다.
#!/bin/bash
# arithmetic.sh
sum=0
first=1
i=$first
while [ $i -le 10 ]
do
sum=$(($sum + $i))
i=$(($i + 1))
done
echo "${first}에서 ${i}까지의 합은 ${sum}입니다."
$ sh arithmetic.sh
1에서 11까지의 합은 55입니다.