# 쉘스크립트개발 # bash에서 조건문 사용 쉘 스크립트에서 조건문 사용시 사용방법 1. 숫자형 비교
**조건****설 명**
i작을 때
g클 때
e같을때
t초과 (이하)
1. 스크립트로 구현 - i가 j보다 작은 값 일 때 ```shell $> vi ./test.sh #!/bin/bash i=0 j=1 if [[ $i -lt $j ]] then echo "$i는 $j 보다 작아요" fi $> ./test.sh 0는 1 보다 작아요 ``` - i가 j보다 큰 값 일 때 ```shell $> vi ./test.sh #!/bin/bash i=1 j=0 if [[ $i -gt $j ]] then echo "$i는 $j 보다 커요" fi $> ./test.sh 1는 0 보다 커요 ``` - i가 j보다 작거나 같은 값 일 때 ```shell $> vi ./test.sh #!/bin/bash i=1 j=1 if [[ $i -le $j ]] then echo "$i는 $j 보다작거나 같아요" fi $> ./test.sh 1는 1 보다작거나 같아요 ``` - i가 j보다 크거나 같은 값 일 때 ```shell $> vi ./test.sh #!/bin/bash i=1 j=1 if [[ $i -ge $j ]] then echo "$i는 $j 보다크거나 같아요" fi $> ./test.sh 1는 1 보다크거나 같아요 ``` 2. 파일속성 비교
**파일속성****설 명**
f속성이 파일일때
d속성이 디렉토리 일때
1. 스크립트로 구현 - /tmp/test가 파일일때 ```shell $> vi ./test.sh #!/bin/bash if [[ -f '/tmp/test' ]] then echo /tmp/test는 파일입니다. fi $> ./test.sh /tmp/test는 파일입니다. ``` - /tmp/test가 디렉토리일때 ```shell $> vi test.sh ./test.sh #!/bin/bash if [[ -d '/tmp/test' ]] then echo /tmp/test는디렉토리 입니다 fi $> ./test.sh /tmp/test는디렉토리 입니다 ``` # urandom기반의 랜덤텍스트 생성 /dev/urandom 기반으로 랜덤한 문자열 생성 1. 대소문자/숫자 조합으로 8자리 문자열 생성 ```shell $> cat test.sh #!/bin/bash random_char=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | sed 1q) echo $random_char $> ./test.sh Y6cJfCwk $> ./test.sh ie3L5AYO $> ./test.sh ICEgcZib ```
2. 대소문자/숫자/특수문자 조합으로 8자리 문자열 생성 ```shell $> cat test.sh #!/bin/bash random_char=$(base64 /dev/urandom | head -1) char=${random_char: -8} echo $char $> ./test.sh Yi9+t7Aa $> ./test.sh /lUAJl2a $> ./test.sh Tm90IGIa ```
*reference* - *[https://zetawiki.com/wiki/Bash\_%EB%9E%9C%EB%8D%A4\_%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C\_%EC%83%9D%EC%84%B1](https://zetawiki.com/wiki/Bash_%EB%9E%9C%EB%8D%A4_%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C_%EC%83%9D%EC%84%B1)*