본문으로 건너뛰기

IF문

if 문을 사용할 때에 당연히 변수를 사용하게 될것이다. 변수 부분에서 중요한 부분을 몇가지 함께 정리하자

if 이전에 변수사용 주의점

  • 변수는 대소문자 구문을 한다. var 와 VAR를 다르게 인식한다
  • 변수 선언할 때 = 앞뒤로 띄어쓰기를 허용하지 않는다
    • var1=test ⭕
    • var1= test ❌
    • var4 =test ❌
    • var3 = test ❌
  • $는 참조 전용이다. 그러므로 변수 앞에는 $를 붙힐 수 없다

변수 사용시 알아야 할 것

백틱을 사용해서 커맨드의 결과값을 변수에 담을 수 있다.

PROCESS_COUNT=`pgrep -cf Hello_World.py`

$를 사용해서 백틱처럼 사용할 수 있다.

PROCESS_COUNT=${pgrep -cf Hello_World.py}

변수값의 참조는 $변수명 이다

PROCESS_COUNT=${pgrep -cf Hello_World.py}
echo $PROCESS_COUNT #이런식으로 참조. 결과는 pgrep으로 카운트 한 숫자가 나온다

변수의 값을 다른 변수로 할 수 있다

VAR="$VAR1"

js처럼 $를 사용도 가능 하다

PROCESS_COUNT=${pgrep -cf Hello_World.py}
echo "Hello_World.py 의 프로세스 카운트는 ${PROCESS_COUNT} 입니다"

변수제거는 unset

unset VAR

→ unset 명령으로 변수를 제거한다.
변수를 제거하려면 unset 명령으로 삭제할 변수 이름을 지정하고 실행한다. 변수 이름을 지정하는 경우에는 $붙이지 않고 변수 이름만을 지정한다.
unset 명령이 실행되면 대상이 된 변수는 값이 삭제 될뿐만 아니라 사용하지 않는 상태로 돌아온다.

읽기전용 변수(상수)도 가능하다

readonly VAR="hogehoge"

if문 간략하게

  • 항목 : -eq / 두 값이 같으면 true
  • 항목 : -ne / 두 값이 다르면 true
  • 항목 : -lt / 오른쪽보다 왼쪽이 작으면 true
  • 항목 : -le / 오른쪽보다 왼쪽이 작거나 같으면 true
  • 항목 : -gt / 오른쪽보다 왼쪽이 크면 true
  • 항목 : -ge / 오른쪽보다 왼쪽이 크거나 같으면 true
  • 항목 : -z / 문자열의 길이가 0인경우 true (-z $VALUE식으로 사용)
  • 항목 : -n / 문자열의 길이가 0이 아닌경우 ture (-z $VALUE식으로 사용)
  • 항목 : == / 문자열이 동일한 경우 true
  • 항목 : != / 문자열이 동일하지 않은 경우 true
  • 항목 : < / 왼쪽의 문자열이 오른쪽의 문자열보다 정렬 시 선행되는 경우
  • 항목 : > / 오른쪽의 문자열이 왼쪽의 문자열보다 정렬 시 선생되는 경우
  • 항목 : && / AND연산 if [ condition 1 ] && [ condition 2 ]
  • 항목 : || / OR연산 if [ condition 1 ] || [ condition 2 ]
  • 항목 : ! / NOT연산 if [ ! condition ]

예제로 쉽게 쉽게~

example.sh

#!/bin/sh


if [ $VALUE -eq 1 ]; then
echo "\$VALUE is 1"
else
echo "\$VALUE is not 1"
fi

example.sh

#!/bin/sh

VALUE=`pgrep -cf sample_process.py`
if [ $VALUE -eq 1 ]; then
echo "$VALUE is 1"
elif [ $VALUE -gt 1 ] && [ $VALUE -le 5 ]; then
echo "1 < $VALUE ≤ 5"
else
echo "$VALUE > 5 or $VALUE < 1"
fi