# 쉘스크립트개발
# 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)*