변수뿐만 아니라 흐름 제어도 사용 가능하다. 다른 프로그래밍 언어처럼 if 조건문을 사용할 수 있다. tail 결과를 30줄 이상 출력하지 못하도록 제한해 보자. 대괄호([[ ]]) 안에 조건을 입력하는데 양쪽에 공백이 있어야 하므로 주의해야 한다. ➊ [[ "$1" -gt 30 ]]은 $1에 저장된 값을 산술 비교하고 30보다 크면(gt, greater than) 참으로 then 이하를 실행한다. ➋ 메시지 too big을 출력한 후 ➌ 종료 코드 1로 스크립트를 중단한다. 0이 아닌 종료 코드는 비정상 종료를 의미한다. 30보다 크지 않으면 tail 명령을 실행하고 ➍ 종료 코드 0으로 정상 종료를 알린다.
#!/bin/bash # /home/supreme/sysloger # syslog 결과를 파일로 저장 ver06 : 흐름 제어 result=syslogresult`date +%y%m%d` line="${1:-10}" if [[ "$1" -gt 30 ]]; then ➊ echo "too big" ➋ exit 1 ➌ fi tail /var/log/syslog -n"$line" > "$result" exit 0 ➍