쉘 스크립트에서의 변수 선언
아무래도 신입이기도 하고 linux를 접해볼 기회가 많이 없기 때문에 변수를 선언하고 할당하는 법이 어색했다.
java에서는 그냥 자연스럽게 됐었는데..ㅎ
이건 변수 하나 설정할 때도 검색하고 찾아봐야 하다니.. 더 검색하기 싫어서 정리한다.
내가 하려고 했던 것은 명령어를 입력한 뒤 반환되는 값을 변수에 할당하고 싶은 것이었다.
그래서 처음엔 변수 = 명령어 라고 생각을 하고 진행을 하니 오류가 발생했었다.
그래서 검색을 하고 찾아보니 명령어 입력 후 반환값을 변수에 할당하려면
변수 = $( 명령어 ) 형식으로 입력하면 되는 것이었다.
ex) PID = $(ps -ef | grep 'project' | grep -v 'grep' | awk '{print $2}')
그 후 할당한 변수에 따라 실행할 로직이 달라 조건문을 사용했어야 했다.
조건문은 if []; then else 형식을 사용하면 된다.
조건문 속 옵션이 생각보다 많은데 정리를 해보자면
-n : 문자열이 null이 아니라면 true
-z : 문자열이 null이라면 true
-eq : 두 값이 같으면 true
-ne : 두 값이 다르면 true
-gt : grate than 으로 > 와 동일
- ge : grate equal 로 >= 와 동일
-lt : less than 으로 < 와 동일
-le : less equal 로 <= 와 동일
-a : and 로 && 와 동일
-o : or 로 || 와 동일
등이 있다.
내가 사용한 예시를 보여주면
if [ -n "${pid}" ]; then
echo "process is still running..."
echo "Force terminate start.."
kill -9 "${pid}"
fi
이런 식으로 사용할 수 있다.