1. 程式人生 > 實用技巧 >6,shell 第六部分

6,shell 第六部分

迴圈:
1, while語句:

       while  條件句

              do

                     指令

       done


strace 跟蹤一個程序的系統呼叫情況

1,while迴圈的特長是執行守護程序以及我們希望迴圈不退出持續執行,用於頻率小於1分鐘迴圈處理(crond),
其他的while迴圈幾乎都可以被我們即將要講for迴圈代替。
2,if語句可以替換case語句,一般在系統啟動指令碼傳入少量固定規則字串,用case,其他判斷多用if.
3,一句話,if,for 語句最常用,其次while(守護程序),case(服務啟動指令碼)。

[root@node1 ~]# cat a.sh
#! /bin/bash
for n in  1 2
do
  echo -e "\033[31m  $n  \033[0m"
done
[root@node1 ~]# sh -x a.sh
+ for n in 1 2
+ echo -e '\033[31m  1  \033[0m'
  1 
+ for n in 1 2
+ echo -e '\033[31m  2  \033[0m'
  2 
[root@node1 ~]#



#! /bin/bash
for((i=0;i<=5;i++))
do
  if [ $i -eq 3 ];then
    #continue
    #break
     exit
  fi
    echo $i
done
echo "OK"


檢查網段線上的IP:
[root@node1 ~]# cat ping.sh 
#! /bin/bash
for i in `seq 254`
do
  ping -c2 10.0.0.$i &>/dev/null 2>&1
  if [ $? -eq 0 ]
    echo "10.0.0.$i up" >> /tmp/up.log
  else
    echo "10.0.0.$i down" >> /tmp/down.log
  fi
done