Linux下迴圈 選擇 順序操作

2022-03-14 01:22:49 字數 3605 閱讀 2177

linux shell在程式設計方面比windows批處理強大很多,無論是在迴圈、運算。

bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。

定義陣列

在shell中,用括號來表示陣列,陣列元素用「空格」符號分割開。定義陣列的一般形式為:

複製** **如下:

陣列名=(值1 值2 ... 值n)

例如:複製**

**如下:

array_name=(value0 value1 value2

value3)

或者 複製**

**如下:

array_name=(

value0

value1

value2

value3

)還可以單獨定義陣列的各個分量:

複製**

**如下:

array_name[0]=value0

array_name[1]=value1

array_name[n]=valuen

可以不使用連續的下標,而且下標的範圍沒有限制。

讀取陣列

讀取陣列元素值的一般格式是:

複製**

**如下:

$例如:

複製**

**如下:

valuen=$

使用@符號可以獲取陣列中的所有元素,例如:

複製**

**如下:

echo $

獲取陣列的長度

獲取陣列長度的方法與獲取字串長度的方法相同,例如:

複製**

**如下:

# 取得陣列元素的個數

length=$

# 或者

length=$

# 取得陣列單個元素的長度

lengthn=$

附:shell陣列小結

不知道

(傾訴)

陣列作為一種特殊的資料結構在任何一種程式語言中都有它的一席之地,當然bash

shell也不例外。本文就shell陣列來做乙個小的總結。

在這裡只討論一維陣列的情況,關於多維陣列(事實上,你得用一維陣列的方法來模擬),不涉及。這裡包括陣列的複製,計算,刪除,替換。

陣列的宣告:

複製**

**如下:

array[key]=value # array[0]=one,array[1]=two

declare -a array # array被當作陣列名

array=( value1 value2 value3 ... )

array=( [1]=one [2]=two [3]=three ... )

array="one two three" # echo

$,把array變數當作陣列來處理,但陣列元素只有字串本身

陣列的訪問:

複製**

**如下:

$ # $

陣列的刪除

複製**

**如下:

unset array[1] # 刪除陣列中第乙個元素

unset array # 刪除整個陣列

計算陣列的長度:

複製**

**如下:

$$ #同上。 $ 、$。注意同#的區別

陣列的提取

從尾部開始提取:

複製**

**如下:

array=( [0]=one [1]=two [2]=three [3]=four

)$ # two three

four,除掉第乙個元素後所有元素,那麼$表示所有元素

$ # one

two$ # two three

子串刪除

複製**

**如下:

[root@localhost dev]# echo

$one two three four

[root@localhost dev]# echo $ #

左邊開始最短的匹配:"t*e",這將匹配到"thre"

one two e four

[root@localhost dev]# echo $ # 左邊開始最長的匹配,這將匹配到"three"

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

[root@localhost dev]# echo $ # 從字串的結尾開始最短的匹配

one tw three

four

[root@localhost dev]# echo $ # 從字串的結尾開始最長的匹配

one tw three

four

子串替換

複製**

**如下:

[root@localhost dev]# array=( [0]=one [1]=two

[2]=three [3]=four )

第乙個匹配到的,會被刪除

複製**

**如下:

[root@localhost dev]# echo $

mne twm three fmur

所有匹配到的,都會被刪除

複製**

**如下:

[root@localhost dev]# echo $

mne twm three fmur

沒有指定替換子串,則刪除匹配到的子符

複製**

**如下:

[root@localhost dev]# echo $

ne tw three fur

替換字串前端子串

複製**

**如下:

[root@localhost dev]# echo $

kne two three four

替換字串後端子串

複製**

**如下:

[root@localhost dev]# echo $

one twk three four

1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done

2、在shell中常用的是 for i in $(seq 10)

3、for i in `ls`

幾個不同的方法來實現輸出1-100間可以被3整除的數

1.用(())

#!/bin/bash

clear for((i=1;i<100;i++))

for do if((i%3==0))

then

echo $i

continue

fi done

順序 迴圈 選擇結構例項

if結構流程圖 巢狀if控制語句 public static void main string args else else else while和do while迴圈結構 for迴圈結構 跳轉語句 break語句 跳出迴圈。public static void main string args i...

順序結構 選擇結構 迴圈結構

三種基本結構 順序結構 選擇結構和迴圈結構 1 順序結構 計算機執行程式的步驟是從上到下依次執行 2 選擇結構 條件控制語句 1 if語句 2 if else語句 3 條件表示式 a b a b c語言中唯一的三目運算子 判斷a是否大於b 如果成立,則返回a,否則返回b 4 switch語句 例 s...

順序結構 選擇結構 迴圈結構

1 能夠理解順序結構 按照 的先後順序,依次執行,即為順序結構 2 能夠使用if語句第一種格式 if 關係表示式 3 能夠使用if語句第二種格式 if 關係表示式 else 可使用三目運算子替代 a b?a b 4 能夠使用if語句第三種格式 if 關係表示式1 else if 關係表示式2 els...