Linux/Shell Programming

08.[Linux] 쉘(shell) Looping

xgoo 2023. 2. 20. 00:21
반응형

산술연산 명령 expr과 let

 

각 명령의 차이점 

expr은 /usr/bin/expr 즉 Linux에서 지원하는 명령어입니다.

정수형 산술연산(+,-,*/,%),논리연산(|,&),관계연산(=,!=,>,>=,<,<=)이 가능합니다.

 

let은 shell builtin 즉 쉘(bash)에서만 사용가능한 명령입니다.

쉘에서 지원하는 명령이기 때문에 쉘이 변경되면 사용이 불가능 할 수 있습니다.

정수형 산술연산(+,-,*/,%),bit 연산(<<.>>,&,|),논리연산(&&,||),단항연산(++,+=,-=)이 가능합니다.

 

사용예시 

expr

$ expr 5 + 5

$ expr 5 - 5
$ expr 25 '/' 5

$ expr 25 '%' 4

$ expr 2 '*' 2

 

let

$ let sum=x+5

let x++

let x+=1

$ ((sum=x+5)) // let과 (())으로 두 가지 방법이 존재함

$ ((x++))

$ ((x-=1))

 

loop 명령 while과 until

 

각 명령문의 차이점

while

while 뒤의 명령어가 true일 때 do~done 사이의 명령을 반복 실행

 

until

until 뒤의 명령어가 false일 때 do~done 사이의 명령을 반복 실행

 

사용예시

whlie

1이 들어있는 num변수가 5보다 작거나 같을 때 $num을 출력하고 num변수에 1을 더하는 스크립트가 있습니다.

실행하게 되면 5보다 작거나 같은경우는 5번 즉, 참이 5번 동안이기때문에 do~done문이 5번 출력 되는 것을 볼 수 있습니다.

 

until

do~done사이는 위 while문과 동일하고 조건문이 변경되었습니다.

num변수가 5보다 클때까지 do~done 사이 명령어 출력되기때문에 총 5번이 출력되는 것을 확인 할 수 있습니다.

 

while문은 성공하는 동안, until문은 성공할 때까지의 큰 차이점이 있습니다.

 

for-loop

for 명령문은 주어진 list 값 만큼 do~done사이의 명령을 반복 실행하는 명령문입니다.

 

사용예시

num 변수에 in 뒤의 list 값들을 넣을 때마다 그 값을 출력하는 스크립트가 있습니다.

list에는 1,2,3,4,5 총 5개의 값이 들어 있고 각 값들을 출력하는 것을 확인 할 수 있습니다.

 

list에는 값이 아닌 특정 경로를 list로 넣을 수 있습니다.

/etc/ 경로에 있는 모든 값들을 num 변수에 넣고 그 변수를 반복 출력하는 스크립트입니다.

이하 생략

위 사진처럼 /etc/ 경로의 값들이 출력되는 것을 볼 수 있습니다.

이 처럼 잘 활용하면 유용한 스크립트를 작성할 수 있습니다.

 

이상으로 shell script 공부를 마칩니다.

 

리눅스의 모든 것을 배울 때까지 공부해봅시다.

 

 

 

 

반응형