Shell script if 조건문, 조건식

영진·2023년 1월 23일
0

network

목록 보기
8/14
post-thumbnail

Shell Script에서 사용할 수 있는 if 조건문 & 조건식을 작성해보도록 할 것이다.


if 조건문

조건문이란?🤔
-> 지정된 조건을 Ture 또는 false로 판별하여 각 상황에 맞게 명령을 실행하도록 만드는 것을 뜻한다.


if문 형식

if [ 값1 조건식 값2 ] ; then
	commands
fi
else
	commands
fi
demo = 2

if문을 사용하려면 if 문 후에 나오는 '[' 사이에 스페이스바가 들어가야 한다.

작동방식:

  • if문이 실행되고, 종료상태 0이라면 -> if 뒤에 commands를 실행한다.
  • if문이 실행되고, 종료상태가 0이 아니라면 -> else 뒤에 commands를 실행한다.

변수

변수 사용: 변수를 출력하고자 할때 ${변수} 처럼 중괄호로 감싸주는 습관을 들여야한다.
$변수로 출력할 경우 에러가 발생할 수 있기 때문이다.

올바른 예

echo "${demo}hello"

올바르지 않는 예

echo "$demohello"

출력 결과


인수

$# : 넘어오는 인수의 개수

$0 : 쉘 스크립트의 파일명

$1 : 쉘 스크립트로 넘어온 첫번째 인수

$2 : 쉘 스크립트로 넘어온 두번째 인수


조건식

조건식은 다음과 같이 정리할 수 있다.


비교식

[ -z ${A} ] : A 문자열의 길이가 0이면 TRUE
[ -n ${A} ] : A 문자열의 길이가 0이 아니면 TRUE
[ ${A} -eq ${B} ] : A와 B값이 같으면 TRUE
[ ${A} -ne ${B} ] : A와 B값이 다르면 TRUE
[ ${A} -gt ${B} ] : A가 B보다 크면 TRUE
[ ${A} -ge ${B} ] : A가 B보다 크거나 같으면 TRUE
[ ${A} -lt ${B} ] : A가 B보다 작으면 TRUE
[ ${A} -le ${B} ] : A가 B보다 작거나 같으면 TRUE

[ ${A} == ${B} ] : A 문자열과 B 문자열이 동일할 경우 TRUE
[ ${A} =! ${B} ] : A 문자열과 B 문자열이 서로 다른 경우 TRUE

and 연산

[ 조건식A -a 조건식B ] : 조건식 A와 B가 모두 TRUE이면 TRUE (&& 와 동일)

or 연산

[ 조건식A -o 조건식B ] : 조건식 A가 TRUE거나 조건식B가 TRUE면 TRUE (|| 와 동일)

not 연산

[ !조건식A ] : 논리값에 not를 수행한다.


파일 조건

[ -d ${A} ] : A 파일이 디렉토리면 TRUE
[ -e ${A} ] : A 파일이(노드, 디렉토리, 소켓 등등 모두) 존재하면 TRUE
[ -L ${A} ] : A 파일이 심볼릭 링크면 TRUE
[ -r ${A} ] : A 파일이 읽기 가능하면 TRUE
[ -s ${A} ] : A 파일의 크기가 0 보다 크면 TRUE
[ -w ${A} ] : A 파일이 쓰기 가능하면 TRUE
[ -x ${A} ] : A 파일이 실행 가능하면 TRUE
[ -c ${A} ] : A 파일이 Special character file 이면 TRUE
[ -f ${A} ] : A 파일이 디렉토리가 아닌 일반 regular 파일이면 TRUE
[ -S ${A} ] : A 파일이 소켓이면 TRUE
[ ${A} -nt ${B} ] : A 파일 B 파일보다 최신파일이면 TRUE
[ ${A} -ot ${B} ] : A 파일이 B 파일보다 이전파일이면 TRUE
[ ${A} -ef ${B} ] : A 파일과 B 파일이 같은 파일이면 TRUE


profile
I'm good at cloud computing.

0개의 댓글