【2018.07.13學習筆記】【linux高級知識 20.10-20.15】

20.10 for循環

語法格式:bash

for 變量 in 條件(值範圍); do 語句 ;done

示例:計算1到10的累加和code

#!/bin/bash
sum=0
for i in 'seq 1 10'    //seq 1 10 爲結果集,是以空格號或回車爲間隔遍歷值。
do
    sum=$[$sum+$i]
done
   echo $sum

示例:針對文件的循環,遍歷每一個ls的結果值判斷是否爲目錄,而後ls該目錄。input

#!/bin/bash
cd /etc/
for a in 'ls /etc/'    //a是ls /etc/ 結果裏的值每一個遍歷,是以空格爲間隔的
do
   [-d $a] && ls $a
done

示例:/lgs/ 目錄下 touch 1 2 touch 3\ 4.txt (文件名是3 4.txt,脫義字符後是空格)it

for i in 'ls ./'
do
   echo $i
done

##執行結果是
1
2
3
4.txt    //會把文件3 4.txt 當成兩個文件 3和 4.txt。驗證出是以空格爲間隔遍歷條件裏的值

20.11/20.12 while循環

語法:for循環

while 條件 ;do 語句; done

示例:awk

#!/bin/bash   //爲了讓腳本不意外停止,用screen中運行腳本
while :   //while true或者while 1的意思,表示永久循環
do
   load='w|head -1|awk -F 'load average: ' '{print $2}' |cut -d. -f1 '
   if[ $load -gt 10 ]
   then
      /usr/local/mail.py xxx@xxx "load high"  "$load"
   fi
   sleep 30 //30秒檢查一次
done

示例:變量

#!/bin/bash
while :
do
   read -p "please input a number: " n
   if[ -z $n ]
   then
     echo "你須要輸入東西"
	 continue   //繼續執行下一次的循環
   fi
   n1='echo $n|sed 's/[0-9]//g''
   if [ ! -z $n1 ]
   then
     echo "你只能輸入數字"
	 continue
   fi
   break  //跳出循環體
done
echo $n

20.13 break跳出循環

#!/bin/bash
for i in 'seq 1 10'
do
  echo $i
  if[ $i -eq 3 ]
  then
    break  //跳出全部循環
  fi
  echo $i  //i=3時,這句不執行了,由於上面跳出for循環體了
done
echo aaaaaa

##結果
1
1
2
2
3
aaaaaa

20.14 continue結束本次循環

忽略本次循環continue之下的語句,直接進入下一次循環sed

#!/bin/bash
for i in 'seq 1 10'
do
  echo $i
  if [ $i==3 ]
  then
    continue  //直接進入i=4的循環
  fi
 echo $i
done
echo$i

##結果
1
1
2
2
3
4
4
5
5
5

20.15 exit退出整個腳本

#!/bin/bash
for i in 'seq 1 5'
do
  echo $i
  if [ $i==3 ]
  then
      exit   //i=3,直接不執行之後全部的代碼,退出腳本
  fi
  echo $i
done
echo aaaaaa   //i=3不執行該語句

##結果
1
1
2
2
3
相關文章
相關標籤/搜索