當前位置:首頁 » 操作系統 » linuxshell數組

linuxshell數組

發布時間: 2022-10-19 14:19:33

Ⅰ 在 用於索引linux shell 數組元素時,@和*有什麼區別

It looks pretty straight forward. For example: set name=(a b c) # name = (a b c) set name = ($name d) # name = (a b c d) set name = (d $name) # name = (d a b c) set name = ($name[1-2] d $name[3-]) # name = (a b d c)

Ⅱ linux shell腳本中,數組名稱是一個變數,怎麼列印出它裡面的元素

題主你好,

代碼及測試截圖如下:

希望可以幫到題主, 歡迎追問.

Ⅲ Linux Shell awk中怎麼調用數組和for循環

echo|awk'
{
array[1]=1
array[2]=2
array[3]=3
array[4]=4
array[5]=5

for(i=1;i<=5;++i){
printarray[i]
}
}'

Ⅳ linux,shell如何把字元串變成數組

echo $url | cut -d , -f 1
cut是切割命令,-d表示分隔符,這里是逗號,-f表示取第幾個,這里是第一個
注意和數組不一樣,數組是取第0個。

Ⅳ Linux Shell 下有3個數組 A(a b c) B(1 2 3) C(x y z) 現在想列印出數組D ("A[]"_"B[]"_"C[]")

很簡單啊……

#!/bin/bash

a=(a b c)
b=(1 2 3)
c=(x y z)

h=0
for ((i=0; i < 3; i++)); do
for ((j=0; j < 3; j++)); do
for ((k=0; k < 3; k++)); do
echo "d[$h] = ${a[$i]}_${b[$j]}_${c[$k]}"
let h++
done
done
done

輸出結果如下:

d[0] = a_1_x
d[1] = a_1_y
d[2] = a_1_z
d[3] = a_2_x
d[4] = a_2_y
d[5] = a_2_z
d[6] = a_3_x
d[7] = a_3_y
d[8] = a_3_z
d[9] = b_1_x
d[10] = b_1_y
d[11] = b_1_z
d[12] = b_2_x
d[13] = b_2_y
d[14] = b_2_z
d[15] = b_3_x
d[16] = b_3_y
d[17] = b_3_z
d[18] = c_1_x
d[19] = c_1_y
d[20] = c_1_z
d[21] = c_2_x
d[22] = c_2_y
d[23] = c_2_z
d[24] = c_3_x
d[25] = c_3_y
d[26] = c_3_z

Ⅵ Linux shell 數組array基礎和$a的區別

Linux Bash中,數組變數的賦值有兩種方法:
(1) name = (value1 ... valuen) // 此時下標從0開始;
(2) name[index] = value
下面以一個簡單的腳本來說明,腳本內容如下:
#!/bin/bash
#定義數組
A=(a b c def)
#把數組按字元串顯示輸出
echo ${A[@]}
#屏幕顯示:a b c def
#數組的長度表示${#A[*]}
len=${#A[*]}
echo ${#A[*]}
#屏幕顯示:4
#改變數組元素的值
A[3]='vivian'
echo ${A[*]}
#屏幕顯示:a b c vivian
#循環輸出數組元素
i=0
while [ $i -lt $len ]
do
echo ${A[$i]}
let i++
done
#屏幕輸出:
# a
# b
# c
# vivian

#循環輸出數組元素的另一種寫法,注意,在條件中,用#a[@]取其個數。
for ((i=0;i<${#A[@]};i=$i+1))
do
echo ${A[$i]}
done
#循環輸出數組元素的另一種寫法,注意,在條件中,引用變數一定要用雙引號 ,否則報錯。
for (( j=0; j<"$len"; j=j+1 )) //len表示數組長度值
do
echo ${A[$j]}
done
#循環輸出數組元素的另一種寫法,注意,${A[*]}不能寫成$A ,$A默認是第一個元素。 如果A="a b c ded",就可以寫$A,
for value in ${A[*]}
do
echo $value
done
ps:
若a=(1 2 3 4)表示所有元素,則其只能用${a[*]}或者${a[@]}來表示。在a=(1 2 3 4)中,$a只是表示第一個元素1。
若a="1 2 3 4"表示所有元素,則其可以用${a[*]}或者${a[@]}或者$a來表示。
假如a="1 2 3 4",則array=($a)就相當於a=(1 2 3 4),不信你可以試試echo ${array[@]}。
上面的例子還可以改寫成以下內容:
for value in $A
do
echo $value
done

Ⅶ linux shell里怎麼用數組

split(s,a,fs) 以fs為指定分隔符將字元串s分割成一個數組a awk 'BEGIN{print split("aswd|sawa|eee",Ti,"|"),Ti[1]}'

Ⅷ linux shell 腳本 求任意10個數的最大值。(使用數組)

讀取10個數字存入數組中

然後使用一個變數max將它的初始值設置為數組中第一個元素的值

接著從數組中第二個元素開始遍歷整個數組

如果某個元素的值大於max則將max設置為該值

如此遍歷完整個數組後max中便是整個數組中最大的值


下面是一個簡單的示例代碼

#!/bin/bash

echo-n'輸入10個數:'
read-aa

max=${a[0]};

foriin{1..9}
do
if[${a[$i]}>$max]
then
max=${a[$i]}
fi
done

echo"最大值為:$max"

exit0

Ⅸ linux shell 怎樣比較兩個數組的內容,並且把不同的部分輸出

unset 不能這么用,需要指定數組索引,也就是數組下標,而不是數組的值,你可以這樣干:
#check if there are any files added
folder_list=(1 2 3 4 5)
file_list=(1 2)
declare -a result_list
t=0
flag=0
echo folder_list=${folder_list[*]}
echo file_list=${file_list[*]}
for m in "${folder_list[@]}"
do
for l in "${file_list[@]}"
do
if [ "$m" == "$l" ]; then
flag=1
break
fi
done
if [ $flag -eq 0 ]; then
result_list[t]=$m
t=$((t+1))
else
flag=0
fi
done
echo result_list=${result_list[*]}

弄個結果數組保存結果,把在file_list里找不到的folder_list值存到結果數組中。

熱點內容
微博視頻高清上傳設置 發布:2025-05-14 16:38:41 瀏覽:548
資料庫圖書管理設計 發布:2025-05-14 16:33:52 瀏覽:378
php開發的網頁 發布:2025-05-14 16:22:03 瀏覽:477
伺服器內存跑滿了怎麼回事 發布:2025-05-14 16:21:16 瀏覽:224
微信qq音樂緩存 發布:2025-05-14 16:16:16 瀏覽:469
c語言回收內存 發布:2025-05-14 16:16:08 瀏覽:144
2021國產安卓頂級旗艦買哪個 發布:2025-05-14 16:15:36 瀏覽:300
linux自學視頻 發布:2025-05-14 16:14:49 瀏覽:256
我的世界伺服器崩了重啟 發布:2025-05-14 16:09:37 瀏覽:45
android深拷貝 發布:2025-05-14 16:09:35 瀏覽:154