관리 메뉴

IT창고

쉘 스크립트 if문 2 본문

프로그래밍/Shell Script

쉘 스크립트 if문 2

방구석여포 2020. 10. 17. 20:56

이전 글에서 쉘 스크립트의 기초적인 부분과 if문의 조건식에 대해 알아보았습니다.

이번에는 이중if문과 case문에 대해 알아보도록 하겠습니다.

 

이중if문을 사용한 간단한 스크립트를 만들어보도록 하겠습니다.

위의 사진과 같은 결과는 아래의 소스코드에서 확인 가능한 쉘 스크립트로 만들어졌습니다.

#!/bin/bash

Gsk=/etc/passwd

if [ -f $Gsk ]; then
    echo "현재 계정 정보=" `id`
      if [ -O $Gsk ]; then
        echo "해당 파일은 현재 계정의 소유파일 입니다"
      else
        echo "해당 파일은 현재 계정의 소유파일이 아닙니다."
      fi
  else
    echo "현재 디렉토리는 존재하지 않습니다"
fi


exit 0

쉘 스크립트 기초와 if문 조건식에서 알아보았던 내용을 조합해서 만들었으며 사용자 변수에 파일의 경로를 넣어두었으며 첫 if문에서 현재 계정의 ID값과 해당 파일이 있는지 확인 후 참일 경우 두번째 if문에서 해당 파일이 현재 계정의 소유파일 인지 확인하는 쉘 스크립트 입니다. 
소스코드가 얼마안될때는 괜찮지만 if문이 중접될수록 복잡해질 수 있습니다. 그럴 경우 elif문을 이용할 수 있으며 아래에 elif문을 사용한 쉘 스크립트를 확인해보도록 하겠습니다.

 

위의 사진과 같은 결과는 아래의 소스코드에서 확인 가능한 쉘 스크립트로 만들어졌습니다.

#!bin/bash

Gsk=/etc/passwd

if [ -O $Gsk ]; then
    echo "현재 계정 정보=" `id`
    echo "해당 파일은 현재 계정의 소유파일 입니다"
      elif [ -G $Gsk ]; then
        echo "현재 계정 정보=" `id`
        echo "해당 파일은 현재 계정의 소유권은 없으며 그룹권한을 가진 파일 입니다"
      else
        echo "현재 계정 정보=" `id`
        echo "해당 파일은 현재 계정의 소유 및 그룹파일이 아닙니다." 
fi


exit 0

처음 만들었던 쉘 스크립트를 elif문을 사용하여 변형 시켜보았습니다. 

elif문을 쓰면 else문은 elif문으로 대처되며 elif문을 연속해서 사용하여 복합적으로 사용이 가능합니다.

 

마지막으로 case에 대해 알아보도록 하겠습니다.

elif문은 연속해서 복합적으로 사용이 가능한데 만약 한가지의 변수만을 계속해서 확인할 경우 case문으로 대처가 가능합니다. 

 

위의 사진과 같은 결과는 아래의 소스코드에서 확인 가능한 쉘 스크립트로 만들어졌습니다.

#!/bin/bash

echo "1. /etc/paswd 2. /etc/ 3. /var/log"
echo -e "/etc/passwd 파일 선택하기 = "
read word

case $word in
    "1") echo "passwd 파일 맞음" ;;
    "2") echo "passwd 파일 아님" ;;
    "3") echo "passwd 파일 아님" ;;

esac

echo ""
echo ""
echo -e "/etc/passwd,  파일 직접 입력하기"
read word2

case $word2 in
    "/etc/bash") echo "passwd 파일 아님" ;;
    "/etc/profile") echo "passwd 파일 아님" ;;
    "/etc/passwd") echo "passwd 파일 맞음" ;;
    *) echo "잘못된 선택" ;;

esac

위에 case문 예제를 2개 확인해 볼 수 있습니다. 1번째 예제는 1,2,3 번 숫자를 선택해서 1번 선택 시 정상적인 선택이라는 메세지를 출력합니다. read 명령어를 받아 변수값에 직접적으로 값을 넣어주는것도 가능하며 2번째 예제에서는 직접 파일경로를 입력하여 출력되며 3가지 값 중에 맞지는 값을 입력할 경우 잘못된 선택 메세지로 출력이 됩니다.

 

case문 사용 예제로 확인해보았으며 쉘 스크립트의 경우 대부분은 if문으로 작성이 가능합니다. 

'프로그래밍 > Shell Script' 카테고리의 다른 글

쉘 스크립트 for문  (0) 2020.11.03
쉘 스크립트 if문 3  (0) 2020.10.19
쉘 스크립트 if문 1  (0) 2020.10.10
쉘 스크립트 기초 2  (0) 2020.10.07
쉘 스크립트 기초 1  (0) 2020.10.06
Comments