Linux--shell交互輸入與循環語句--06


一、交互輸入

1、命令用法:read a b c   -> aa bb cc

read命令同時可以定義多個變量值;而輸入的內容默認以空格為分隔符,將值輸入到對應的變量中;如果默認值輸入過多,最后所有的值都會被賦予給最后一個變量;如果輸入的值少於變量數,多余的變量則為空值

2、常用參數:

-p   read -p “請輸入一個值:” 變量名 ===  echo -n “請輸入一個值:” ; read 變量名

-t   定義超時時間   read -t 5 -p “請輸入一個值:” 變量名

二、while語句

1、while語句語法格式

定義初始值
while 條件判斷;do
    循環體
    值變化語句
done

練習

i=1
while (( $i<=5 ));do
    echo $i
    let i++
done

2、其他兩種特殊語句格式

第一種:

while read 變量;do
    循環體
done <</path/filename

 第二種.死循環:

while true;do
    循環體
done

break  打斷循環

continue  打斷本次循環,開始下次循環

sleep  延時循環

三、until語句

與while用法相同

與while的區別是,只有判斷條件為False時候,才會進入循環

四、for語句循環

1、for語句的應用場景:

某功能需要循環執行,只是執行對象不同,(數據對象必須是同類)

2、for語句格式:

for 變量 in 條件列表;do
    循環體
done

3、列表的生成方式

 a) 直接給出字符串列表

for i in a b c d e;do
    循環體
done

b) 整數列表

{start .. end} :    例:{1..9}
seq :命令引用 $(seq [start [步長]] end) 例:seq 20 2 30輸出20 22 24 26 28 30

c) 返回列表命令

  $(COMMAND)

  應用場景例:判斷/var/log的所有文件,以.log結尾的文件統計處理

#!/bin/bash
#
declare -i sum=0
for i in $(ls /var/log/);do
    if [[ $i = "*.log" ]];then
        echo $i
        let sum++
    fi
done
echo "統計.log結尾的文件有:$sum"   

d) glob機制:---- 文件通配符的機制

e) 變量引用:----傳參

  $@  $* 將參數作為for循環的列表

  $0 代表運行的腳本文件  awk中$0代表整行內容

    需要多個次的時候用$@ ,需要一個詞的時候用$*

 4、擴展:for語句的另一種寫法(基於C語言的寫法)

for((i=0;i<10;i++));do
    循環體
done

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM