1. 개요
조건문, 반복문, 함수, 변수 사용, echo 옵션, 입력 등 기본적인 쉘 스크립트 작성방법을 알 수 있는 test script이다.
2. Source code
#!/bin/sh mul_func() { cnt=1 while [ $cnt -le 9 ] do echo "$multiple * $cnt = `expr $multiple \* $cnt`" cnt=`expr $cnt + 1` done } big_func() { bignum=0 if [ $input2 -ge $input1 ] ; then if [ $input3 -ge $input2 ] then bignum=$input3 else bignum=$input2 fi else if [ $input3 -ge $input1 ] then bignum=$input3 else bignum=$input1 fi fi echo "BIG Number : $bignum" } small_func() { smallnum=0 if [ $input2 -le $input1 ] ; then if [ $input3 -le $input2 ] then smallnum=$input3 else smallnum=$input2 fi else if [ $input3 -le $input1 ] then smallnum=$input3 else smallnum=$input1 fi fi echo "small Number : $smallnum" } fibo_func() { num1=1 num2=1 temp=0 echo -n "$num1\t$num2\t" while [ $num2 -le $fibonacci ] do temp=$num2 num2=`expr $num1 + $num2` num1=$temp if [ $num2 -ge $fibonacci ] then break fi echo -n "$num2\t" done echo } display_func() { topcnt=1 while [ $topcnt -le $input ] do cnt=`expr $input - $topcnt` while [ $cnt -ge 1 ] do echo -n " " cnt=`expr $cnt - 1` done cnt=1 while [ $cnt -le $topcnt ] do echo -n "*" cnt=`expr $cnt + 1` done cnt=1 while [ $cnt -le $topcnt ] do echo -n "*" cnt=`expr $cnt + 1` done echo topcnt=`expr $topcnt + 1 ` done } menu_print() { clear echo "--------------------------------------------------------------" echo "| Test Script |" echo "| 1. Login user |" echo "| 2. The rules of multiplication |" echo "| 3. Fibonacci Sequence |" echo "| 4. If input 3 number then result Big, small number |" echo "| 5. Display Image |" echo "--------------------------------------------------------------" echo echo -n "Choose(q:quit) : " read menu echo } while true do menu_print case $menu in 1) echo -n "1. Login user : " echo `who | wc -l`"명" echo "`who`" ;; 2) echo "2. The rules of multiplication" echo -n "INPUT : " read multiple echo mul_func ;; 3) echo "3. Fibonacci Sequence" echo -n "INPUT : " read fibonacci echo fibo_func ;; 4) echo "4. If input 3 number then result Big, small number" echo -n "INPUT 1 : " read input1 echo -n "INPUT 2 : " read input2 echo -n "INPUT 3 : " read input3 echo big_func small_func ;; 5) echo "5. Display Image" echo -n "INPUT : " read input echo display_func ;; q) break ;; *) echo "Input Error!" esac sleep 3 done