Shell script | 조건문 (if문, case ~ esac문, #! /bin/sh문) | 반복문 (For문과 While의 차이)

배진경·2022년 7월 24일
0

리눅스

목록 보기
5/5
post-thumbnail

셸 shell

  • 사용자가 입력한 명령어 커널에게 전달될 때 해석기⭐

  • 해석기능, 프로그래밍 기능, 사용자 환경변수를 설정할 수 있다⭐


shell script

command line에서 특정 기능이 수행되도록
지정된 스크립트(명령어 집합)


shell script의 장점

다른 언어보다 빠르게 동작함


shell script의 단점

복잡함, 어려움 - 오류확인이 어려움

파라미터

parameter 매개변수
0부터 시작한다.
두번째 파라미터는 <$1>이다.






흐름문

조건에 따라 프로그램의 흐름을 제어하는게 가능함 (java script)

조건문

기본 조건문 if

if [조건]
then
 조건이 참일경우 실행될 명령어 문장
fi

( vi 에디터에서 코드 작성 후, sh로 출력 )


if - 조건이 같을 경우

if [ “a” = ”a” ]           앞 뒤 공백!!!!!
then
 echo “같은 문자열”
fi

:wq 로 저장하고 나가기


if - 조건이 다를 경우

// if_test.sh

if [ "a" != "a" ]
then
 echo "조건이 참인 경우 실행되는 문장"
else 
 echo "조건이 거짓인 경우 실행되는 문장"
fi

:wq 로 저장하고 나가기

숫자를 비교하는 경우

  • 변수1-gt변수2 : 변수 1이 변수 2보다 크다
  • 변수1-ge변수2 : 변수 1이 변수 2보다 크거나 같다
  • 변수1-lt변수2 : 변수 1이 변수 2보다 작다
  • 변수1-le변수2 : 변수 1이 변수 2보다 작거나 같다

파일을 비교하는 경우

  • -d파일이름 : 주어진 파일이 디렉터리이면 참
  • -e파일이름 : 주어진 파일이름이 존재하면 참
  • -f파일이름 : 주어진 파일이 일반 파일이면 참
  • -r파일이름 : 주어진 파일을 읽을 수 있으면 참
  • -w파일이름 : 주어진 파일을 쓸 수 있으면 참
  • -x파일이름 : 주어진 파일을 실행 할 수 있으면 참
  • -s파일이름 : 주어진 파일의 크기 0이 아니면 참
  • -u파일이름 : 주어진 파일이름이 set-user-id가 설정이 되면 참
  • -g파일이름 : 주어진 파일이름이 set-group-id가 설정이 되면 참

-f파일이름 : 주어진 파일이 일반 파일이면 참



case ~ esac 문

  • 쉘 프로그래밍에서 여러가지 경우의 수를 나타내고 싶을 때 사용 (cf. if문은 True or False 유용)
case 파라미터 또는 입력값
조건1)
조건1에 해당하는 실행 명령                  # ;;
조건2)
조건2에 해당하는 실행 명령                  # ;;
*)
앞의 모든 조건에 부합하지 않은 경우 실행 명령
esac

조건문 #! /bin/sh

#! /bin/sh

echo "계절 판별(Spring/Summer/Fall/Winter)"
case "$1" in
Spring)
echo "봄";;                
Summer)
echo "여름";;
*)
echo "잘못된 값을 입력"
esac

exit 0




조건에 || or && 논리연산자 다중조건 사용할 수 있다.






반복문

For 문

  • 반복횟수를 알 경우 사용

  • 초기값;조건식;증감값 (num : 초기값)

for ~ in
for((초기값;조건식;증감값))
do
조건이 참일 동안 수행되는 명령
done
for 변수 in seq 초기값 마지막값
do
조건이 참일 동안 수행되는 명령
done
for 변수 in 값1, 값2, ....
do
조건이 참일 동안 수행되는 명령
done

While 문

while [ 조건식 ]
do
조건식이 참일 경우 실행되는 문장
done
while [ "while문 1~10까지 누적 결과 출력" ]
do                      # `(틸드사용), 띄워쓰기 X
 sum=`expr $sum + $num` # expr은 산술적인 연산을 하는데 사용하는 명령어
 echo "1부터 $num까지 중간 합산 결과 : $sum" 
 num=`expr $sum + 1`    #  +1 => 1씩 증가
done
echo "1부터 10까지 누적 결과 출력 : $sum"

for과 While문의 차이

forWhile
반복횟수를 알 경우반복횟수를 모를 경우
초기값;조건식;증감값조건식
셸스크립트, 실행끊어줄 때 break로 반복문을 끝냄
  • break는 흐름 제어문




profile
개발자를 꿈꾸며

0개의 댓글