Linux 진급: SHELL 스 크 립 트 프로 그래 밍 진급

셸 스 크 립 트 프로 그래 밍 진급
공정 제어
       
        
        
        

조건 선택 if 문장
    
  :if     
   
    if   ;then
                 
    fi
   :
    if    ;then
                   
    else
                 
    fi 

if 구문
       
     if     1; then
            1       
    elif     2; then
           2       
     elif     3; then
           3       
    else
                    
    fi
       ,     “ ”   ,     ,      if    

if 예제
                  
if ping -c1 -W2 station1 &> /dev/null; then
    echo 'Station1 is UP'
elif grep "station1" ~/maintenance.txt &> /dev/null; then
    echo 'Station1 is undergoing maintenance‘
else
    echo 'Station1 is unexpectedly DOWN!'
    exit 1
fi  

조건 판단: case 문장
    case      in
PAT1)
  1
;;
PAT2)
  2
;;
...
*)
    
;;
esac

case  glob      :
*:         
?:       
[]:            
a|b: a b 

순환 하 다.
        
               
           
                
                
              
for, while, until  

for 순환
    for     in   ;do
        
 done

 for i[i     ] in {1..10};【in       】do userdel -r user$i; done 【do done       】

    :
                “   ”;              ;  
             ,      

     :[root@centos18:11:44bin]#sum=0; for num in 1 23 4 6 4;do sum=$[sum+num]; done; echo sum=$sum
    sum=38
    [root@centos18:12:58bin]#for num in 1 23 4 6 4;do echo "num=$num";done
    num=1
    num=23
    num=4
    num=6
    num=4
    [root@centos18:13:24bin]#sum=0; for num in {1..100};do sum=$[sum+num]; done; echo sum=$sum
    sum=5050
    [root@centos18:16:24bin]#sum=0; for num in `seq 10`;do sum=$[sum+num]; done; echo sum=$sum
    sum=55
    [root@centos18:16:47bin]#sum=0; for num in {1..100..2};do sum=$[sum+num]; done; echo sum=$sum
    sum=2500

     :  1 100  
    [root@centos18:27:29bin]#sum=0; for i in {1..100};do sum=$[sum+i];done;echo sum=$sum
        sum=5050
    [root@centos18:27:44bin]#sum=0; for i in `seq 1 2 100`;do sum=$[sum+i];done;echo sum=$sum
    sum=2500

for 순환
      :
(1)       
(2)     :
    (a) {start..end}
    (b) $(seq [start [step]] end)
(3)        
    $(COMMAND)
(4)   glob, :*.sh
(5)     ;
   $@, $*  

while 순환
    while CONDITION; do
           
 done
CONDITION:      ;      ,      ;       
      ;   “true”,       ;         
“false”    
  :CONDTION           ;              

    :CONDITION true
    :CONDITION false 

until... 까지 순환
    until CONDITION; do
           
done

    : CONDITION  false
    : CONDITION  true  

순환 제어 문 contine
      
continue [N]:     N      ,          ;    
 1 
 while CONDTIITON1; do
CMD1
...
if CONDITION2; then
continue
fi
CMDn
...
 done 

순환 제어 문 break
          
break [N]:     N   ,     1 
 while CONDTIITON1; do
CMD1
...
if CONDITION2; then
break
fi
CMDn
...
 done  

순환 제어 시 프 트 명령
    shift [n]
        list       ,       。
     list      ,               。while    
        ,    shift
./doit.sh a b c d e f g h
./shfit.sh a b c d e f g h

예시: doit. sh
    #!/bin/bash
# Name: doit.sh
# Purpose: shift through command line arguments
# Usage: doit.sh [args]
while [ $# -gt 0 ] # or (( $# > 0 ))
do
 echo $*
 shift
done

  :shift.sh
#!/bin/bash
#step through all the positional parameters
until [ -z "$1" ]
do
 echo "$1"
 shift
done
echo  

무한 순환 생 성
while true; do
   
done

until false; do
   
Done

좋은 웹페이지 즐겨찾기