case 변수 in

value1)

명령

;;

value2)

명령

;;

*)

명령

;;


ex)

#!/bin/sh


echo "색깔을 입력해주세요"

read color


case $color in

[Gg]reen)

        echo "green~!!"

;;

blue)

        echo "blue~!!"

;;

*)

        echo "defualt:/"

;;

esac



변수를 설정할때는 그냥사용하고 출력이나 연산이 필요한 곳, 변수를 호출할때는 $를 붙여준다.


ex)

VAR="Hello Shell"

echo $VAR



변수는 기본적으로 문자열을 받는다.

따라서 정수형변수를 선언할때는 delcare -i명령을 사용한다.


정수형이라 문자를 입력하면 디폴트값인 0이 출력된다. 또한 정수형이기때문에 실수는 입력을 받지 못함.

함수로 쉘 코드의 섹션을 정의할 수 있으며 이름을 정할 수 있다. 이름을 실행하면 함수호출이 된다.


function_name(){

block of code

}


ex)


#!/bin/sh


lister(){

echo "$STR"

echo "현디렉토리 위치 `pwd`"

}


STR="Hello World"

lister



함수안에서 값을 이용해야할때는 함수밖의 변수를 쓰면 값을 가져온다.

C언어처럼 lister(STR)이런식으로 하지 않아도 되요.

while loop


while <test-com> do <coms> done


test-com 이 true일때 do ,done사이의 문장을 실행한다.


ex)


#!/bin/sh


number=0

while [ number -lt 10 ]

do

echo "$number"

number=`expr $number + 1`

done

echo "done.."




for loop


for <loop-index> in <arg-list> do <coms> done


ex)


#!/bin/sh


for number in 1 2 3 4 5 

do

echo $number

done

echo "done.."




기본 if 문법

 

 if test "taesun" = "taesun"

then

echo "TRUE"

else

echo "FALSE"

fi

exit 0

 

 

비교 연산자

 

산술 연산자

 

 

 Shell script 작성과 실행

 

C언어의 출력 = printf(); 이지만. Shell script에서는 echo로 나타낸다.

 기본적으로 echo명령이실행되고 나면 줄바꿈이 되어 진다. 줄바꿈을 하지않고 출력하려면 

echo -n 변수 


ex)

 

echo "사용자 이름 : "$USER

exit 0

 

위와 같이 스크립트파일을 만들때는 .sh로 만들고 실행할때는 sh *.sh로 실행한다.

 

변수 선언

 

변수를 사용하기 전에 미리 선언하지 않아도 되며, 처음값이 할당되면서 자동으로 변수가 생성된다.

모든 문자열은 string형태로 취급된다.(숫자를 넣어도 문자로  취급.)

변수 이름은 대소문자를 구분한다.

변수를 대입할 때는 '=' 좌우 공백이 없어야 함.

 

변수에 공백이 들어갈때는 위에 보이듯이 ""로 묶어줘야 한다.

7+5는 정상적으로 들어가지만 이를 연산으로 보는게 아니고, 문자열로 인식한다.

 

변수는 $를 앞에 붙여서 나타내는데, $문자가 들어간 글자를 출력하기 위해서는 ''로 묶어 주면 된다.

 

ex)

myvar=Hi
echo $myvar
echo "$myvar"
echo '$myvar'
echo /$myvar
read myvar
echo '$myvar = '$myvar
exit 0

 

3번째 줄은 ''로 묶었기 때문에 $myvar를 하나의 문자열로 인식하여 그대로 출력한 것이다.

입력(C언어의 scanf();)를 받을때는 read로 받는다.

 

+ Recent posts