我們一起來學Shell shell的迴圈控制

2022-09-22 03:30:12 字數 4692 閱讀 1085

我們一起來學shell - 初識shell

我們一起來學shell - shell的變數

我們一起來學shell - shell的條件判斷

我們一起來學shell - shell的迴圈控制

我們一起來學shell - shell的陣列

我們一起來學shell - shell的函式

我們一起來學shell - shell的併發及併發控制

我們一起來學shell - 正規表示式

for迴圈的運作方式,是將序列的元素意義取出,依序放入指定的變數中,然後重複執行含括的命令區域(在do和done 之間),直到所有元素取盡為止。

其中,序列是一些字串的組合,彼此用$ifs所定義的分隔符(如空格符)隔開,這些字串稱為字段。

語法結構

for 變數 in 值集合

do 執行命令

done

列出 var 目錄下各子目錄占用磁碟空間的大小

#!/usr/bin/env bash

dir=

"/var"

for i in

$(ls $)do

[ -d "$/$i"]&&

du -sh $/$i

done

用 for 迴圈建立 demo1-demo10 目錄,然後在 demo1-demo10 目錄下建立 test1-test10 目錄

#!/usr/bin/env bash

for i in

$(seq 1 10)

domkdir /tmp/demo$

for j in

$(seq 1 10)

domkdir /tmp/demo$/test$

done

done

for迴圈 - 99 乘法表

#!/usr/bin/env bash

for(( i=

1; i<=

9; i++

))do

for(( j=

1; j<=i; j++

)) do

let"k=$*$"

echo -ne "$*$=$\t"

done

echo

" "done

語法格式

while 條件測試

do 執行命令

done

while迴圈 - 99 乘法表

#!/usr/bin/env bash

a=1b=1

while

(( a <=9))

dowhile

(( b <= a ))

dolet"c=$*$"

echo -ne "$*$=$\t"

let b++

done

let a++

let b=1

echo

" "done

while迴圈的條件測試是測真值,until迴圈則是測假值。

語法格式

until 條件測試

do 執行命令

done

until迴圈 - 99 乘法表

#!/usr/bin/env bash

a=1b=1

until

(( a >9))

dountil

(( b > a ))

dolet"c=$*$"

echo -ne "$*$=$\t"

let b++

done

let a++

let b=1

echo

" "done

break,continue,exit 一般用於迴圈結構中控制迴圈的走向。

命令說明

break n

n 表示跳出迴圈的次數,如果省略 n 表示跳出整個迴圈

continue n

n 表示退到第n層繼續迴圈,如果省略n表示跳過本次迴圈進入下一次迴圈

exit n

退出當前的shell程式,並返回 n,n 也可以省略

return

用於返回乙個退出值給呼叫的函式

shift

用於將引數列表list左移指定次數,最左端的那個引數就從列表中刪除,其後邊的引數繼續進入迴圈

break指令

break[n]:提前結束第n層迴圈,最內層為第1層

語法格式

while condition1;

do cmd1

...if condition2;

then

break

fi cmdn

...done

當數字等於3的時候,則跳出迴圈,輸出」game over」,迴圈結束後,輸出「complate」

#!/usr/bin/env bash

for(( i=

0; i<=

9; i++

))doif[

$i -eq 3 ]

;then

echo

"game over"

break

fiecho

$idone

echo

"complate"

continue 指令

語法格式

while condition1;

do cmd1

...if condition2;

then

continue

fi cmdn

...done

當數字等於3的時候,輸出「game over」

#!/usr/bin/env bash

for(( i=

0; i<=

9; i++

))doif[

$i -eq 3 ]

;then

echo

"game over"

continue

fiecho

$idone

exit 指令

退出當前的shell,和break的區別在於,break只是跳出了迴圈,後續的內容,任然會繼續執行,但是exit是直接退出程式,後續的內容,不再執行

當數字等於3的時候,輸出「game over」,並退出當前的shell

#!/usr/bin/env bash

for(( i=

0; i<=

9; i++

))doif[

$i -eq 3 ]

;then

echo

"game over"

exit 1

fiecho

$idone

shift 指令

輸出乙個三角形

#!/usr/bin/env bash

while

[[ $# > 0 ]]

doecho

$*shift

done

執行指令碼

sh study.sh 1 2 3 4 5 6
結果如下

1 2 3 4 5 6

2 3 4 5 6

3 4 5 6

4 5 6

5 66

乙個乙個輸出

#!/usr/bin/env bash

while

[[ $# > 0 ]]

doecho

$1shift

sleep 1

done

執行指令碼

sh study.sh 1 2 3 4 5 6
結果如下

543

21

我們一起來學Shell shell的函式

我們一起來學shell 初識shell 我們一起來學shell shell的變數 我們一起來學shell shell的條件判斷 我們一起來學shell shell的迴圈控制 我們一起來學shell shell的陣列 我們一起來學shell shell的函式 我們一起來學shell shell的併發及...

一起來學SQL(二)

insert into 語句用於向 中插入新的行。語法 insert into 表名稱 values 值1,值2,也可以指定所要插入資料的列 insert into table name 列1,列2,values 值1,值2,e.g.1 插入新的行 insert into persons value...

一起來學SQL(三)

create database 用於建立資料庫。sql create database 語法 create database database name create table 語句用於建立資料庫中的表。sql create table 語法 create table 表名稱 列名稱1 資料型別,...