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
반응형
'IT > 보안' 카테고리의 다른 글
의존성(Dependency)이란? 컴파일타임 의존성과 런타임 의존성의 차이 및 비교 (0) | 2023.03.15 |
---|---|
switch case문(조건문2) 이해, 예제 -C언어 (0) | 2023.03.04 |
[Java] Google Authenticator(Google OTP)를 이용한 개발. (0) | 2023.01.06 |
PAM(Privileged Access Management, 특권 접근 관리)란 무엇인가? (0) | 2022.07.05 |
SSH 접속시 No Matching Key 문제 (0) | 2022.06.22 |