[ if문과 case문 ]
(1) 기본 if문
if [조건] then 참일 경우 실행 fi exit 0 |
- [ 조건 ] 사이의 각 단어에는 모두 공백이 있어야 한다.
(2) if ~ else문
- 참인 경우와 거짓인 경우를 구분해서 실행한다.
if [조건] then 참일 경우 실행 else 거짓일 경우 실행 fi exit 0 |
< if 조건문에 들어가는 비교 연산자 >
(1) 문자열 비교 연산자
1) “문자열1” = “문자열2” --> 두 문자열이 같으면 참
2) “문자열2” != “문자열2” --> 두 문자열이 같지 않으면 참
3) -n “문자열” --> 문자열이 NULL이 아니면 참
4) -z “문자열” --> 문자열이 NULL이면 참
(2) 산술 비교 연산자
1) 수식1 –eq 수식2 --> 두 수식이 같으면 참 (=)
2) 수식1 –ne 수식2 --> 두 수식이 다르면 참 (!=)
3) 수식1 –gt 수식2 --> 수식1 이 크면 참 (>)
4) 수식1 –ge 수식2 --> 수식1 이 크거나 같으면 참 (>=)
5) 수식1 –lt 수식2 --> 수식1 이 작으면 참 (<)
6) 수식1 –le 수식2 --> 수식1 이 작거나 같으면 참 (<=)
< 파일과 관련된 조건 >
1) -e [파일이름] : 파일이 존재하면 참
2) -u [파일이름] : 파일에 SetUID가 설정되면 참
3) -g [파일이름] : 파일에 SetGID가 설정되면 참
4) -f [파일이름] : 파일이 일반 파일이면 참 (-로 시작..)
5) -r [파일이름] : 파일이 읽기 가능이면 참
6) -w [파일이름] : 파일이 쓰기 가능이면 참
7) -x [파일이름] : 파일이 실행 가능이면 참
[ case ~ esac문 ]
아래 예시는 case ~ esac문을 사용한 예시입니다.
1 #!/bin/sh 2 echo "리눅스가 재미있나요? (yes / no)" 3 read answer 4 case $answer in 5 yes | Yes | YES | y | Y) 6 echo "다행입니다";; 7 8 [nN]*) 9 echo "안타깝습니다";; 10 *) 11 echo "입력이 올바르지 않습니다." 12 esac 13 exit 0 |
5행, 8행, 10행처럼 괄호로 끝난 행은 모두 "분기"입니다.
[ For ~ in 반복문 ]
for [변수] in 값1 값2 값3 ........ 값10
do
[반복할 문장]
done
- 변수에 각각의 값을 넣은 후 do 안에 있는 [반복할 문장]을 값의 개수만큼 실행한다.
[root@localhost ~]# cat forin1.sh
#!/bin/sh
hap=0 --> 합계를 누적할 변수를 0으로 초기화
for((i=1;i<=100;i++)) --> i를 1번 부터 100번까지 대입
do
hap=`expr $hap + $i` --> hap 변수에 i 변수의 값을 누적한다(1부터 100까지 계속 더한다)
done
echo "1부터 100까지의 합: "$hap
exit 0
[ While 문 ]
- 무한 루프가 가능하다.
- while 문은 조건식이 참인 동안 계속 반복하는 특성을 갖는다.
While 예시 1.
[root@localhost ~]# vi while1.sh 1 #!/bin/sh 2 while [ "A" != "B" ] --> 참인 조건식 3 do 4 echo "I hate Shell Script!!" --> 무한 반복 5 done 6 exit 0 |
While 예시 2.
[root@localhost ~]# vi while2.sh 1 #!/bin/sh 2 hap=0 --> 누적할 hap 변수를 초기화한다. 3 i=1 4 while [ $i -le 10 ] --> i가 10보다 작거나 같으면 6~7행을 실행 5 do 6 hap=`expr $hap + $i` --> hap에 i의 값을 누적해 저장. 7 i=`expr $i + 1` --> i 변수의 값을 1씩 증가시킨다. 8 done 9 echo "1부터 10까지의 합:" $hap 10 exit 0 |
'[Linux] 리눅스(CentOS7)' 카테고리의 다른 글
[Linux] 리눅스 서버 구축 실습 _ 클라이언트 환경 설정 (0) | 2022.04.12 |
---|---|
[Linux] 리눅스 패키지 관리 시스템 (0) | 2022.04.11 |
[Linux] 리눅스 셸 스크립트 프로그래밍 (2) | 2022.04.06 |
[Linux] VirtualBox에 리눅스 CentOS7 설치하기_4 (0) | 2022.03.25 |
[Linux] VirtualBox에 리눅스 CentOS7 설치하기_3 (0) | 2022.03.24 |