Shell

while문 사용법 (shell script)

yororing 2024. 6. 4. 20:44

01 if 문 기본 사용법

1. 기본 형식

  • Shell에서 while문의 조건식은 문자로 표기되어있음
  • 예) ( <, >, = ) 기호가 ( -eq, -lt ) 로 표기됨
  • while 다음에 do, done으로 끝맺힘 
  • [ ] 안에 값/조건식 앞뒤로 공백 없으면 스크립트 에러가 나므로 유의
while [ 값1 조건식 값2 ]
do
    수행문
    수행문
done
  • 예시
#! /bin/ksh

i=1

while [ $i -lt 5 ]
do
    echo $i
    i=$(($i+1))
done
  • -lt: less than
  • 즉, i가 5보다 작으면 계속 i 출
  • 출력값: 1 2 3 4

2. 조건문 종류

비교 대상 종류 설명
문자열
[ -z ] 문자열의 길이가 0이면 참 [ -z $VALUE ]
[ -n ] 문자열의 길이가 0이 아니면 참 [ -n $VALUE ]
== 문자열이 같으면 참  
!= 문자열이 다르면 참  
< 왼쪽의 문자열이 오른쪽의 문자열보다 정렬 시 선행되면 참  
> 오른쪽의 문자열이 왼쪽의 문자열보다 정렬 시 선행되면 참  
조건식 [ -a ] && 또는 and 와 동일, 조건식1과 조건식2 모두 참이면 참  
[ -o ] || 또는 xor과 동일, 조건식1과 조건식2 중 하나라도 참이면 참  


숫자



[ -eq ] 값이 같으면 참  
[ -ne ] 값이 다르면 참  
[ -gt ] 값1 > 값2  
[ -ge ] 값1 >= 값2  
[ -lt ] 값1 < 값2  
[ -le ] 값1 <= 값2  

파일









[ -d ] 파일이 디렉토리면 참 directory  
[ -e ] 파일이 있으면 참  exist  
[ -f ] 파일이 일반 파일 (regular file)이면 참 file  
[ -g ] 파일명이 set-group-id 설정이 되면 참  
[ -L ] 파일이 심볼릭 링크면 참 symbolic Link  
[ -r ] 파일이 본인 권한으로 읽기 가능하면 참 readable  
[ -s ] 파일의 크기가 0보다 크면 참 size  
[ -S ] 파일이 소켓이면 참 socket  
[ -u ] 파일명이 set-user-id 설정이 되면 참  
[ -w ] 파일이 본인 권한으로 쓰기 가능하면 참 writeable  
[ -x ] 파일이 본인 권한으로 실행 가능하면 참 executeable  
[ 파일1 -nt 파일2 ] 파일1이 파일2보다 최신파일이면 참  
[ 파일1 -ot 파일2 ] 파일1이 파일2보다 이전파일이면 참  
[ 파일1 -ef 파일2 ] 파일1이 파일2랑 같은 파일이면   

 

참조

  1. https://jink1982.tistory.com/74
  2.  
  3.