[bash script] 5. bash shell script basic <select, read> bash script

- select 구문

사용자에게 리스트형태의 선택 메뉴를 보여주고 해당 메뉴에 대해 번호를 부여하여 버호의 입력으로 해당
메뉴의 실행을 가능하게 해준다

vi select.sh
------------------------------------------
#!/bin/bash

option="pstree ps quit"

select tmp in $option ; do

if [ "$tmp" = "pstree" ] ; then
psree
elif [ "$tmp" = "ps" ] ; then
ps
elif [ "$tmp" = "quit" ] ; then
exit
else
echo bad option
fi

done
------------------------------------------
:wq
------------------------------------------
1)pstree
2)ps
3)quit
#?
------------------------------------------

- read 구문

프롬프트 상에서 사용자에게 임의의 값을 입력 받을 때 사용

#!/bin/bash

echo "input 0~9"

read NUMBER

echo $NUMBER

echo "input [0~9] [a-z]"

read NUMBER CHAR

echo $NUMBER $CHAR
------------------------------------------
:wq
------------------------------------------
input 0~9
0
0
input [0~9] [a-z]
1 a
1 a

[bash script] 4. bash shell script basic <function> bash script

- 함수

함수 사용법 : function function_name { .. bash script..}

vi function.sh
------------------------------------------
#!/bin/bash

function test_1 {
echo "linux.co.kr"
}

function test_2 {
echo $1
}

test_1

test_2 testargv1
------------------------------------------
:wq
------------------------------------------
linux.co.kr
testargv1

[bash script] 3. bash shell script basic <for, while, until> bash script

- for 구문

조건에 만족할때까지 반복문을 돌려줄때 사용된다

명령행으로 주어진 모든것을 출력
------------------------------------------
#vi for_1.sh
------------------------------------------
#!/bin/bash

for i in $@ ; do

echo $i

done
------------------------------------------
:wq
------------------------------------------
입력 값 그대로 출력이 된다


1에서 100까지 출력
------------------------------------------
#vi for_2.sh
------------------------------------------
#!/bin/bash

for i in ( seq 1 100 ) ; do

echo $i

done
------------------------------------------
:wq
------------------------------------------
1
2
~
100


- while 구문

내부 조건이 참일 경우 반복해서 실행시킨다
거짓일 경우는 더이상 실행하지 않고 다음 구문을 실행한다.

#vi while.sh
------------------------------------------
#!/bin/bash

i=85

while [ $i -lt 100] ; do

echo $i
let i=i+1

done
------------------------------------------
:wq
------------------------------------------
85
86
~
99
100

- until 구문

내부 조건이 거짓일 경우 반복해서 실행한다
참이 되면 더이상 실행하지 않고 다음 구문을 실행한다

vi until.sh
------------------------------------------
#!/bin/bash

i=200

untill [ $i -lt 100 ] ; do
echo $1
leti=i-10
done
------------------------------------------
:wq
------------------------------------------
200
190
~
110
100


[bash script] 2. bash shell script basic <비교연산자, if, case> bash script

- 비교 연산자

수 비교

-eq 같다 if [ "$a" -eq "$b" ]
-ne 같지 않다 if [ "$a" -ne "$b" ]
-gt 초과 if [ "$a" -gt "$b" ]
-ge 이상 if [ "$a" -ge "$b" ]
-lt 미만 if [ "$a" -lt "$b" ]
-le 이하 if [ "$a" -le "$b" ]

문자열 비교

=, == 같다
!= 같지 않다
-z 문자열이 null 임
-n 문장열이 null 이 아님

-분기(if)

조건에 따라 참인지 거짓인지 판별하여 수행하도록 하는 부분이다.

#vi if.sh
------------------------------------------
#!/bin/bash

test1="1"
test2="2"

if [ "$test1" == "test2"] ; then
echo "true"
else
echo "false"
fi
------------------------------------------
:wq
------------------------------------------
false

전역변수인 test1 과 test2 가 같은 값일 경우 true 가 출력된다.

-분기(case)

동일한 조건하에 여러가지로 분기를 해야할 경우이다.

#vi case.sh
------------------------------------------
#!/bin/bash

test="blue"

case "test" in
"red")
echo "ff0000";;
"green")
echo "00ff00";;
"blue")
echo "0000ff";;
*)
echo "error";;

easc
------------------------------------------
0000ff



[bash script] 1. bash shell script basic <변수,배열> bash script

스크립트를 짜는데 언어를 잘 모르는 내가 너무 허덕여서 한번 정리해 보기로 했다.

basic 부분은 리눅스 포털<http://www.linux.co.kr/> 에서 공부하였으며 나머지

부분은 그때그때 필요한 내용들 공부하면서 정리해 보기로 했다.

- 간단한 텍스트 출력

#vi test.sh
---------------------------------------------------
#!/bin/bash

echo "my name is linux"
----------------------------------------------------
:wq
----------------------------------------------------

리눅스에서 shell 을 실행시키기 위해 다음과 같은 실행권한을 준다

#chmod 755 test.sh

다음으로 shell 을 실행 시킨다.
#./test.sh

my name ins linux

- 변수 지정하기

위에서 지정한 my name is linux 에 대한 내용을 변수를 지정해 출력해 보기로 한다

#vi var_test.sh
-----------------------------------------
#!/bin/bash

CHARERS="my name is linux"

echo $CHARERS
------------------------------------------
:wq
------------------------------------------
my name is linux 

CHARERS 라는 변수에 "my name ins linux" 라는 string 이 저장되어 있어

CHARERS 를 출력 하라고 했을 경우 "my name ins linux" 가 출력 된다.

echo $CHARERS 에서 $ 쓰지 않았을 경우 CHARERS 로 출력되니 주의한다.

다음은 지역 변수에 관한 내용이다.

#vi local_var_test.sh
------------------------------------------
#!/bin/bash

CHARERS="my name is linux"
function locals {
local CHARERS="my name is xunil"
echo $CHARERS
}
echo $CHARERS
locals
echo $CAHRERS
------------------------------------------
:wq
------------------------------------------
my name is linux
my name is xunil
my name is linux

- 배열 사용하기

bash 는 다차원배열을 지원하지는 않지만 1차원 배열은 지원한다고 한다

#vi array_test.sh
------------------------------------------
#!/bin/bash

vararray[0]="my"
vararray[1]="name"
vararray[2]="is"
vararray[3]="linux"

echo ${vararray[0]}
echo ${vararray[1]}
echo ${vararray[2]}
echo ${vararray[3]}
------------------------------------------
:wq
------------------------------------------
my
name
is
linux

1 2 3 4 5 6 7 8 9 10 다음