bash中的陣列

2021-07-14 15:59:03 字數 1742 閱讀 1404

#定義:

array=(1

"two"

3"four")

array[index]=value

#訪問陣列元素(array必須用大括號括起來):

$]}# 獲取陣列所有元素(元素之間以空格分隔)

$# 獲取陣列長度

$# 按下標遍歷

for i in

$(seq $(($-1)));

do echo $i, $;

done

# 按元素遍歷(必須加雙引號)

for var in

"$"

注:

# 定義

fruit_value[index]=value

# 訪問陣列元素

$"]}

# 獲得所有key

$# 獲得所有value

$# 按key遍歷關聯陣列

forvar in "$"

注:

例:統計檔案型別資訊。

#!/bin/bash

if [ $#

-ne1 ];

then

echo

"usage: filetype_analyzer.sh path"

exit -1

fideclare -a types

for file in `ls $1`

dotype=`file $file -b | cut -d, -f1`

let types["$type"]++

#echo $file, $type, $

done

fortype

in"$"

doecho

$type

":"$

done

get_nth_array_element的位置引數含義:

$1:返回陣列第幾個元素(從0開始)2:

陣列,"

」把陣列元素轉換成」array[0]」 「array[1]」 … 「array[n-1]」,可以正確處理陣列元素中有空格的情況。實際上函式接受了1+len(array)個位置引數

偏移關係:array[0]是2,

因此偏移

為2, 為array[i]

get_nth_array_element的位置引數含義:1:

返回ar

ray1

[ 1]2:

返回ar

ray2

[ 2]

$3:len(array1)

$4:array1[0]

$(n+4):array2[0]

偏移關係:3表

示第乙個

陣列的長

度(假設

為n),

4-n+

4−1的

位置引數

是第乙個

陣列,這

樣 (n+4)就是第二個陣列[0]元素

#獲得第n個陣列的[m]索引元素

eval

var=\$

how to define hash tables in bash?

passing multiple distinct arrays to a shell function

how to get the nth positional argument in bash?

關於Bash中陣列的使用

關於bash中的陣列,很多文章都已經介紹過。這裡我也簡單的寫一下 一 基礎 bash只是提供了一維陣列,但沒有上限的限制。1 宣告 declare a name 這樣就宣告了乙個name陣列。2 賦值 給陣列的賦值可以參考普通變數的定義,如 name 0 beijing name 1 guangzh...

bash陣列定義

如果用標準的 nix shell將不能使用bash的陣列特性。雖然在perl,python,php及其他高階語言中陣列已經不是乙個強大的功能,但陣列使用還是相當廣泛。bash只支援一維陣列,但引數個數沒有限制。宣告乙個陣列 declare a array 如果沒有宣告,按陣列方式直接賦值給變數,ba...

Bash 索引陣列

bash 提供了兩種型別的陣列,分別是索引陣列 indexed array 和關聯陣列 associative array 本文主要介紹索引陣列的基本用法。bash 提供的陣列都是一維陣列。任何變數都可以用作索引陣列。通過 declare 關鍵字可以顯式的宣告乙個索引陣列。陣列的大小是不受限制的。索...