개발/shell
[shell]shell 기본 문법 변수 , if 문
개발햄
2020. 1. 23. 22:12
shell 기본 문법
쉘을 만들다보면 if문과 변수를 사용할 때가 있습니다 .
java와는 조금 다르기 때문에 아래 기본 문법을 보면서 알아봅시다.
shell 변수 사용
value=0
위는 변수를 담는 과정입니다
java는 int value = 0 과 같이 스페이스를 허용하는 반면
shell의 경우는 스페이스를 넣어선 안됩니다.
nospace=0
space = 1
echo ${noSpace}
echo ${space}
위와 같은 test.sh 파일을 만들고 아래 커맨드를 실행하게 되면
ihanbiui-MacBookPro:Desktop ihanbi$ sh test.sh
test.sh: line 5: space: command not found
0
과 같이 nospace는 출력되는 반면 space는 인식이 안됩니다.
*참고로 변수를 불려올 때 ${변수명} 또는 $변수명 을 이용하여 호출하시면 됩니다
shell if문
다음은 if문의 예시입니다
test1=1
test2=2
if [[ ${test1} -eq ${test2} ]];then
수행문
fi
if [[ ${test1} -ne ${test2} ];then
수행문
else
수행문
fi
if [[ 값1 조건식 값2 ]];then
수행문
elif [[ 값3 조건식 값4 ]];then
수행문
else
fi
위와 같이 조건식을 사용할 수 있습니다
아래는 조건식 입니다.
[ -z ] : 문자열의 길이가 0이면 참
[ -n ] : 문자열의 길이가 0이 아니면 참
[ -eq ] : 값이 같으면 참
[ -ne ] : 값이 다르면 참
[ -gt ] : 값1 > 값2
[ -ge ] : 값1 >= 값2
[ -lt ] : 값1 < 값2
[ -le ] : 값1 <= 값2
[ -a ] : &&연산과 동일 and 연산
[ -o ] : ||연산과 동일 xor 연산
[ -d ] : 파일이 디렉토리면 참
[ -e ] : 파일이 있으면 참
[ -L ] : 파일이 심볼릭 링크면 참
[ -r ] : 파일이 읽기 가능하면 참
[ -s ] : 파일의 크기가 0 보다 크면 참
[ -w ] : 파일이 쓰기 가능하면 참
[ -x ] : 파일이 실행 가능하면 참
[ 파일1 -nt 파일2 ] : 파일1이 파일2보다 최신파일이면 참
[ 파일1 -ot 파일2 ] : 파일1이 파일2보다 이전파일이면 참
[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참