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