IT/보안

Shell Scripting (For 문, if 문, Case 문)

알콩달콩아빠 2023. 3. 4. 15:47
728x90
반응형

-쉘 스크립트 작성을 위해 사용중인 쉘을 확인하는 명령어

 

여기서는 bash 대신 유닉스에서 주로 사용하는 ksh를 사용하여 학습한다.

쉘 스크립트 작성시 #!/bin/ksh 입력하는데 이는 어떠한 프로그램을 사용해서 실행해야 하는지를 나타내며, 이 경우 /bin 경로 안의 ksh라는 프로그램을 사용해서 해당 파일을 실행하게 된다.

 

 

%쉘 스크립트 학습을 위한 korn shell 설치 및 별도 디렉토리 생성

#yum -y install ksh
# mkdir -p /ksh/ksh
# cd /ksh/ksh

 

 

 

l  For 

 

예제 1)#vi for_1.ksh

#!/bin/ksh
for i in 1 2 3 4 5 6 7 8 9
do
           echo “2 * $i = $((2 * $i))”
done
# chmod 700 for_1.ksh     => 생성한 파일에는 실행 권한이 없으므로 권한 부여
# ./for_1.ksh

 

 

예제 2)#vi for_2.ksh

#!/bin/ksh
 
for i in `cat /etc/passwd | grep 'samadal' | sed 's/:.*/ /'`
do
        print $i
done

 

 

 

l  if 

 

예제 1) )#vi if_1.ksh      ‘/’ 파티션 영역의 현재 사용량 정보 출력

ð  마운트 정보 중에서 맨 마지막이 ‘/’로 끝나는 항목의 ‘5th’ 필드 값 출력

#!/bin/ksh
 
A=`df -h | grep '\/$' | awk '{print $5}' | sed 's/%//'`
B=$A
if [[ $B =$A ]]
then
        echo $A
else
        echo "Not Value"
fi

 

 

예제 2)#if_2.ksh          사용자 정보를 통해 사용자 ID Directory 정보가 존재하면 출력하고, 존재하지 않으면 사용자를 생성한 후 ID Directory 정보 출력

echo "User ID를 입력하세요. : "
read ID
 
A=`cat /etc/passwd | grep $ID | awk -F: '{print $1}'`
B=`cat /etc/passwd | grep $ID | awk -F: '{print $6}'`
 
if [[ $A = $ID ]]
then
        echo "The UserID is already registered as below."
                echo $A
                echo $B
else
        echo "The UserID is not exist."
        useradd -m -d /export/home/$ID $ID
        echo "So the UserID just registered as below:"
        cat /etc/passwd | grep $ID | awk -F: '{print $1, $6}'
fi

 

 

 

 

l  Case 

 

예제1)#vi case_1.ksh                 입력받은 User ID 사용 여부 및 특정 ID에 대해 등록 설정

echo "Insert User ID : "
read ID
 
case $ID in
        user1)
                echo "User is exist."
                ;;
        user7)
                useradd -m -d /export/home/$ID $ID
                echo "User has just registered"
                ;;
        *)
                echo "Not Insert..."
                ;;
esac

 

 

 

종합 예제) #vi user.ksh              UserID를 입력받아 생성하기 (생성할 Directory 체크 필요)

 

#!/bin/ksh
 
echo "Do you register UserID?(Y or N)"
read US
 
if [[ $US = N ]]
then
                echo "Thanks. Good-Bye"
else
        echo “Please insert User ID : “
        read ID
       
A=`cat /etc/passwd | grep $ID | awk -F: '{print $1}’`
 
        if [[ $ID = $A ]]
        then
                echo "The User ID is already Registered."
        else
                echo "Do you register User ID on the Basic Directory (y or n)?"
 
                read Dir
                if [[ $Dir = y ]]
                then
                        useradd -m -d /export/home/$ID $ID
                        echo "User ID has just registered like below:"
                        cat /etc/passwd | grep $ID
 
                else
                        echo "Insert User Directory: "
                        read Ins_Dir
                        Usr_Dir=cat /etc/passwd | grep $Ins_Dir | sed 's/:*//'
 
                        if [[ $Ins_Dir = $Usr_Dir ]]
                                useradd -m -d $Ins_Dir $ID
                                cat /etc/passwd | grep $ID
 
fi

 출처 : Shell Scripting (For 문, if 문, Case 문) :: IT의 한 귀퉁이 (tistory.com)

728x90
반응형