아이엠 !나이롱맨😎
article thumbnail
Published 2021. 3. 8. 21:05
[shell] 셸 스크립트 if문과 case문 ...
반응형


#if 문

 

if [ 조건 ]

then

  참일 경우 실행

fi

 

*주의할점 : '[ 조건 ]' 사이의 각 단어에는 모두 공백이 있어야 함

 

if [ 조건 ]  대산 if test 도 가능

#!/bin/sh
if [ "woo" = "woo" ]
then
        echo "참입니다"
fi

if test "woo1" = "woo1"
then
        echo "참2입니다"
fi
exit 0

 

조건문에 들어가는 비교 연산자

 

문자열 비교 결과
"문자열1" = "문자열2" 두 문자열이 같으면 참
"문자열1" != "문자열2" 두 문자열이 같지 않으면 참
-n "문자열" 문자열이 NULL이 아니면 참
-z "문자열" 문자열이 NULL이면 참

 

산술 비교 결과
수식1 -eq 수식2 두 수식이 같으면 참
수식1 -ne 수식2 두 수식이 같지 않으면 참
수식1 -gt 수식2 수식1이 크다면 참
수식1 -ge 수식2 수식1이 크거나 같으면 참
수식1 -lt 수식2 수식1이 작으면 참
수식1 -le 수식2 수식1이 작거나 같으면 참
!수식 수식이 거짓이면 참
#!/bin/sh
if test 100 -ne 200
then
  echo "Its True"
else
 ehco "Its False"
fi
exit 0

파일과 관련된 조건

파일 조건 결과
-d 파일이름 파일이 디렉터리면 참
-e 파일이름 파일이 존재하면 참
-f 파일이름 파일이 일반 파일이면 참
-g 파일이름 파일에 set-group-id가 설정되면 참
-r 파일이름 파일이 읽기 가능이면 참
-s 파일이름 파일크기가 0이 아니면 참
-u 파일이름 파일에 set-user-id가 설정되면 참
-w 파일이름 파일이 쓰기 가능 상태면 참
-x 파일이름 파일이 실행 가능 상태면 참

 

#!/bin/sh
fname=/lib/systemd/system/sshd.service
if test -f $fname
then
  head -5 $fname
else
  echo "sshd 서버가 설치되지 않았습니다."
fi
exit 0

 


#case ~ esac 문

 

#!/bin/sh
case "$1" in
  start)
        echo "시작~~";;
  stop)
        echo "중지~~";;
  restart)
        echo "다시 시작~";;
  *)
        echo "뭔지 모름~~";;
esac
exit 0

 

#!/bin/sh
echo "리눅스가 재미있나요? yes/no"
read answer
case $answer in
        yes|y|Y|Yes|YES)
                echo "다행입니다"
                echo "더욱 열심히 하세요";;
        [nN]*)
                echo "안타깝네요 ㅜㅜ";;
        *)
                echo "yes아니면 no만 입력해야죠"
                exit 1;;
esac
exit 0

 

반응형

article prev thumbnail
article next thumbnail
profile on loading

Loading...