반복문

shinyeongwoon·2022년 11월 24일
0

서버

목록 보기
15/18

for ~in문

변수에 각각의 값을 넣은 수 do 안에 있는 '반복할 문장'을 실행 -> 값의 개수만큼 반복 실행

형식
for 변수 in 값1 값2 값3 ....
do
반복할 문장
done

2행 : 합계를 누적할 hap 변수를 초기화 한
3행 : i 변수에 1 ~ 10을 넣어 5행을 열 번 실행
5행 : hap에 i 변수의 값을 누적

현재 디렉터리에 있는 셸 스크립트 파일(*.sh)의 이름과 앞 세행을 출력

2행 : fname 변수에 ls *.sh 명령의 실행 결과를 하나씩 넣어 4 ~ 5행을 실행
4행 : 파일 이름 출력
5행 : 파일의 앞 세 행을 출력

while

while 문은 조건식이 참인 동안 계속 반복 실행하는 것이 특징

2행 : 조건식 위치에 [ 1 ] 또는 [ : ]이 오면 항상 참이므로 4행을 무한 반복
취소하려면 Ctrl + C

1 ~ 10 까지의 합

비밀번호 입력

until 문

while문과 용도가 거의 같지만 조건식이 참일 때까지(거짓인 동안) 계속 반복 실행
while2.sh until문으로 구현하려면 4행을 until[ $i -gt 10 ] 같이 수정

break, continue , exit , return

break는 반복문을 종료할 때 주로 사용, continue는 반복문의 조건식으로 돌아가게 함
exit는 해당 프로그램을 완전히 종료
함수 안에서 사용할 수 있는 return은 함수를 호출한 곳으로 돌아가게 함

셸 스크립트 응용 기능

사용자 정의 함수(사용자가 직접 함수를 작성하고 호출)

형식
함수명(){
내용
}
함수명

함수의 파라미터 사용

형식
함수명 () {
$1,$2,... 등을 사용
}
함수명 파라미터1 파라미터2 ...

eval

문자열을 명령문으로 인식하여 실행

export

특정 변수를 전역 변수로 만들어 모든 셸에서 사용
exp1.sh 2 ~ 3행 : var1 , var2 변수를 출력
exp2.sh 2행 : var1에 값을 넣고 일반 변수(지역변수) 이므로 exp2.sh 에서만 사용
exp2.sh 3행 : var2를 외부 변수로 선언하고 값을 넣음
exp2.sh 4행 : exp1.sh 를 실행

printf

C 언어의 printf() 함수와 비슷하게 형식을 지정하여 출력
3행 : 공백이 있으므로 ""로 묶어야 함
4행 : %5.2f는 총 다섯자리, 소숫점 아래 두자리 까지 출력
\n은 행 넘기는 개행 문자 \t 는 Tap 문자 , %s는 문자열을 출력
$var2이 경우 값 중간에 공백이 있으므로 변수 이름을 ""로 묶어야 오류 발생이 없음

set 과 $(명령)

리눅스 명령을 결과로 사용하려면 '$(명령)' 형식 사용
결과를 파라미터로 사용하려면 set 명령 이용

shift

파라미터 변수를 왼쪽으로 한 단계씩 아래로 시프트(이동)
3행 : 결과를 누적할 str 변수를 초기화
4행 : $1 파라미터가 비어 있지 않은 동안 반복 실행
5행 : str 변수에 $1을 추가
6행 : 전체 파라미터를 왼쪽으로 시프트
8행 : while 문을 빠져나오면 누적한 str 변수를 출력

0개의 댓글