반응형
[shell script] 쉘 스크립트 기초 #5 - 조건문 if문 옵션 사용법 및 총정리
※ 목차
1. 쉘 스크립트(shell script) if문 문자열 비교 옵션
2. 쉘 스크립트(shell script) if문 산술 비교 옵션
3. 쉘 스크립트(shell script) if문 파일 조건 옵션
옵션에 대한 설명은 위 그림과 같은 조건으로 사용법을 설명하며 아래의 내용중 then을 포함한 나머지 내용은 생략합니다.
if [ 값1 조건 값2 ]
then
명령
else
명령
fi
1. 쉘 스크립트(shell script) if문 문자열 비교 옵션
- 문자열을 기준으로 문자열을 서로 비교하거나 문자열자체를 조건으로 검사합니다.
번호 | 옵션 | 사용법 | 설명 |
1 | 없음 | if [ 문자 ] | 빈 문자열이 아니라면 참입니다. |
2 | = 또는 == | if [ 문자 = 문자 ] | 두 문자열이 같다면 참입니다. |
3 | != | if [ 문자 != 문자 ] | 두 문자열이 같이 않다면 참입니다. |
4 | -n | if [ -n 문자 ] | 문자열이 null(빈 문자열)이 아니라면 참입니다. |
5 | -z | if [ -z 문자 ] | 문자열이 null(빈 문자열) 이라면 참입니다. |
2. 쉘 스크립트(shell script) if문 산술 비교 옵션
- 산술을 비교하며 비교 대상은 왼쪽 기준으로 두 수의 값을 비교합니다.
- and와 or의 비교구문에서는 조건을 1개 사용할 때와 2개 사용할때의 문법은 다르게 사용됩니다.(아래 설명 참고)
번호 | 옵션 | 연산자 | 사용법 | 설명 |
1 | -eq | = | if [ 값1 -eq 값2 ] | 두 값이 같다면 참입니다. |
2 | -ne | != | if [ 값1 -ne 값2 ] | 두 값이 같지 않다면 참입니다. |
3 | -gt | > | if [ 값1 -gt 값2 ] | 값1이 값2보다 크다면 참입니다. |
4 | -ge | >= | if [ 값1 -ge 값2 ] | 값1이 값2보다 크거나 같다면 참입니다. |
5 | -lt | < | if [ 값1 -lt 값2 ] | 값1이 값2보다 작으면 참입니다. |
6 | -le | <= | if [ 값1 -le 값2 ] | 값1이 값2보다 작거나 같아면 참입니다. |
7 | -a | and | if [ 조건1 -a 조건2 ] | 조건1과 조건2의 결과가 모두 참이여야 참입니다. |
8 | -o | or | if [ 조건1 -o 조건2 ] | 조건1과 조건2의 결과 중 하나만 참이면 참입니다. |
쉘 스크립트(shell script) if문 and 사용법
- 위 옵션 설명 중 -a옵션은 and를 나타냅니다. 또한 && 기호와 같습니다.
- 조건1과 조건2의 결과가 모두 참이여야 됩니다.
- -a옵션을 사용하는 방법과 && 기호를 사용하는 2가지 방법이 존재합니다.
- &&연산을 사용할때는 이중 대괄호를 사용하면 보기쉽게 구분할 수 있습니다.
- 아래 예시는 산술비교 -eq의 옵션으로 1과 1이 같다는 조건2개를 and로 묶은 2개의 방법입니다.
if [ 1 -eq 1 -a 1 -eq 1 ]; then
echo yes
else
echo no
fi
if [[ 1 -eq 1 ]] && [[ 1 -eq 1 ]]; then
echo yes
else
echo no
fi
쉘 스크립트(shell script) if문 or 사용법
- 위 옵션 설명 중 -o옵션은 or를 나타냅니다. 또한 || 기호와 같습니다.
- 조건1과 조건2의 결과 중 하나만 참이여야 됩니다.
- -o옵션을 사용하는 방법과 || 기호를 사용하는 2가지 방법이 존재합니다.
- ||연산을 사용할때는 이중 대괄호를 사용하면 보기쉽게 구분할 수 있습니다.
- 아래 예시는 산술비교 -eq의 옵션으로 1과 2이 같다는 조건 1개와
-eq 옵션으로 1과 1이 같다는 조건1개를 서로 -or로 묶은 2개의 방법입니다.
- || 연산자는 키보드의 엔터키 위에 'shift+\'를 입력하면 되고 리눅스에서는 파이프 기호라고 부릅니다.
if [ 1 -eq 2 -o 1 -eq 1 ]; then
echo yes
else
echo no
fi
if [[ 1 -eq 2 ]] || [[ 1 -eq 1 ]]; then
echo yes
else
echo no
fi
반응형
3. 쉘 스크립트(shell script) if문 파일 조건 옵션
- 파일 조건은 파일의 존재여부 또는 파일에 대한 속성 값을 비교합니다.
- 아래의 옵션은 모두 참인 경우를 나타내며 조건에서 거짓을 만들어 거짓을 참으로 만들 수 있습니다.
지정한 디렉토리에 디렉토리가 존재 하지 않으면 디렉토리를 만드는 if문
#!/bin/bash
DIR="/home/usergroup/apple"
if [ ! -d $DIR ]; then
mkdir -p $DIR
fi
번호 | 옵션 | 사용법 | 설명 |
1 | -b | if [ -b 파일 ] | 파일이 블럭 디바이스면 참입니다. |
2 | -c | if [ -c 파일 ] | 파일이 문자 디바이스면 참입니다. |
3 | -d | if [ -d 파일 ] | 파일이 디렉토이이면 참입니다. |
4 | -e | if [ -e 파일 ] | 파일이 존재하면 참입니다. |
5 | -f | if [ -f 파일 ] | 파일이 존재하고 정규파일이면 참입니다. |
6 | -g | if [ -g 파일 ] | 파일이 setgid이면 참. (파일 그룹 실행권한에 s가 있는 경우) |
7 | -G | if [ -G 파일 ] | 파일의 그룹이 현재 사용자 그룹이면 참입니다. |
8 | -h | if [ -h 파일 ] | 파일이 하드링크이면 참입니다. |
9 | -k | if [ -k 파일 ] | 파일이 Sticky bit이면 참. (파일 다른사용자 실행권한에 T가 있는 경우) |
10 | -L | if [ -L 파일 ] | 파일이 심볼릭 링크이면 참입니다. |
11 | -O | if [ -O 파일 ] | 파일의 소유자가 현재 사용자이면 참입니다. |
12 | -p | if [ -p 파일 ] | 파일 속성이 파이프이면 참입니다. ( prw-r--r-- ) |
13 | -r | if [ -r 파일 ] | 현재 사용자가 읽을 수 있는 파일이면 참입니다. |
14 | -s | if [ -s 파일 ] | 파일이 비어있지 않으면 참입니다. |
15 | -S | if [ -S 파일 ] | 파일이 소켓 디바이스이면 참입니다. |
16 | -t | if [ -t FD ] | FD가 열려진 터미널이면 참입니다. (File Descriptor) |
17 | -u | if [ -u 파일 ] | 파일이 setuid이면 참. (파일 소유자 실행권한에 s가 있는 경우) |
18 | -w | if [ -w 파일 ] | 현재 사용자가 쓸 수 있는 파일이면 참입니다. |
19 | -x | if [ -x 파일 ] | 현재 사용자가 실행 할 수 있는 파일이면 참입니다. |
20 | -nt | if [ 파일1 -nt 파일2 ] | 파일1이 파일2보다 최근파일이면 참입니다. |
21 | -ot | if [ 파일1 -ot 파일2 ] | 파일1이 파일2보다 오래된 파일이면 참입니다. |
22 | -ef | if [ 파일1 -ef 파일2 ] | 파일1이 파일2보다 하드링크 파일이면 참입니다. |
쉘 스크립트(shell script) if문 -u 옵션, -g 옵션, -k 옵션
- setuid, setgid, sticky bit는 파일 특수권한으로 각각 소유자, 그룹, 다른사용자 실행권한에 x가 아닌 s 또는 t가 생깁니다. 예를 들어 setuid, setgid, sticky bit가 모두 부여되었다고 가정하면 -rwsr-sr-t 가되고 기존에 실행권한이 x가 부여되어있으면 소문자 s, 소문자t로 부여되고 실행권한이 없었다면 대문자 S, 대문자 T로 부여됩니다.
자세한 내용은 아래 블로그를 참고하세요
↓↓링크↓↓
https://rhrhth23.tistory.com/37
[Linux] 리눅스 서버 기본 명령어 chmod 명령어 옵션 사용법 총정리
[Linux] 리눅스 서버 기본 명령어 chmod 명령어 옵션 사용법 총정리 ※ 목차 1. 리눅스 chmod 명령어란? 2. 리눅스 chmod 명령어 규칙 및 설명 3. 리눅스 chmod 명령어 옵션 4. 리눅스 chmod 명령어 옵..
rhrhth23.tistory.com
반응형
그리드형
'IT > 리눅스 쉘 스크립트' 카테고리의 다른 글
[shell script] 쉘 스크립트 기초 #7 - 제어문 case문 설명 및 예제 (36) | 2022.06.12 |
---|---|
[shell script] 쉘 스크립트 기초 #6 - 반복문 for문 개념 및 사용법 (0) | 2022.05.10 |
[shell script] 쉘 스크립트 기초 #4 - 조건문 if문 개념 규칙 및 문법 (0) | 2022.04.26 |
[shell script] 쉘 스크립트 기초#3, 기초 예제 - 변수 사용 예제 (1) | 2022.04.18 |
[shell script] 쉘 스크립트 기초 #2, 기초 문법 - 변수 선언, 변수 호출 (0) | 2022.04.09 |
댓글