指令碼引數互動與for語句迴圈

2021-09-27 08:51:24 字數 2383 閱讀 1963

指令碼引數互動與for語句迴圈

1.指令碼引數互動

$n $1 $2 … $(10) $(11) … //傳參,通過這些傳參我們可以將相關的引數輸入到指令碼中去;

read命令實現指令碼引數的匯入:

read多個引數可以同時匯入

如果變數個數多於輸入的數值,就把最後多餘的數值賦值給最後乙個變數;

例子:read a b c

1 2 3 4 5 6

1.-p 可以指定輸入提示文字;

read -p 「請輸入要檢視的內容:」list_disk

呼叫list_disk -- $list_disk

2.-t 設定超時時間

read -t 10 -p "請輸入檢視內容:「list_disk

10秒後,指令碼自動執行後面的內容

3.需要給read指定的變數,提供預設值:

[ $? -eq 0 ] && exit 0 || exit 1

[ $list_disk ]

【多條命令寫在同一行中執行,使用;隔開】

練習:輸入乙個裝置檔案,輸出這個裝置檔案的基本資訊:

請輸入乙個裝置檔案:sda1/sdb /dev/

for語句迴圈:

使用場景:遍歷

在python語言中,我遍歷的內容通過range(0,10,2);

在shell指令碼中,遍歷的內容**會有很多,比如、命令、可以通過檔案萬用字元來進行檔案的遍歷操作、∗

*∗@、直接寫入字串;

for的格式–寫法:

for變數in索要遍歷的內容;do

迴圈體done

示例:for i in ;done

echo $i

done

具體學習五種所要遍歷內容的方式:

1.字元遍歷

for i in see cat ;do

echo $i

done

2.數值的迴圈

for i in ; do

echo $i

done

3.取命令執行後的結果

for i inseq 1 2 9;do

echo $i

done

1到100的偶數和:

for i in $(seq 2 2 100); do

sum = sum + $i

# sum += $i

done

echo $sum

注意:所有的命令結果都可以放在這裡來遍歷

練習:找出user1這個使用者的所有檔案,判斷這些檔案的大小,並將大於100m的檔案顯示出來;

for filename in $(find / -user user1);do

count=wc -c $filename | cut -d" " -f1

if [ $count -gt 100000000];then

echo $filename

fidone

4.globbing檔案萬用字元的方式

練習:去將/var/log/下以.log結尾的所有檔案的行數,統計出來

for line in /var/log/.log; do

wc -l lin

edon

e5.做傳

參遍

歷line done 5.做傳參遍歷

linedo

ne5.

做傳參遍

歷*@建議使

用@ 建議使用

@建議使用@

在我們為指令碼輸入傳參的時候,如果,我們要對每乙個傳參進行操作,這時候就可以使用@和@和

@和*去遍歷每乙個傳參;

示例:for i in $@ ; do

echo $i

done

使用:bash 6.sh 1 2 3 4 5 6

練習99乘法表:

while

while如何實現99乘法表

格式:初始值

while 條件判斷;do

迴圈體值控制語句

done

注意:當條件判斷為真的時候,才會進入迴圈體;

declare -i i=1

while [ $i -lt 10 ];do

declare -i j=1

while [ $j -le i];

doec

ho−n

−e

"i ];do echo -n -e "

i];doe

cho−

n−e"

i*j =j=

j=[i ∗i*

i∗j]\t"

let j++

done

echo

let i++

done

Shell指令碼 引數

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 以下例項我們向指令碼傳遞三個引數,並分別輸出,其中 0為執行的檔名 bin bash author 菜鳥教程 url www.r...

訪問Shell指令碼引數

所謂的位置引數 positional parameters 指的也就是shell指令碼的命令列引數 command line arguments 在shell函式裡,它們同事也可以是函式的引數。各引數都由整數來命名。基於歷史的原因,當它超過9,就應該用大括號把數字框起來 echo first arg...

Python 指令碼引數傳遞

optionparser from optparse import optionparser def parse cmd parser optionparser usage prog options version 1.0 parser.add option c cluster help expan...