1. 程式人生 > >[work] shell中陣列下標訪問

[work] shell中陣列下標訪問

shell中陣列的下標預設是從0開始的

1。將字串放在陣列中,獲取其長度

#!/bin/bash str="a b --n d" array=($str) length=${#array[@]} echo $length

for ((i=0; i<$length; i++)) do     echo ${array[$i]} done

執行結果:

[[email protected] array]$ sh length.sh 4 a b --n d

列印字串:

 #!/bin/bash str="a b c" for i in $str do echo $i done

或者:

#!/bin/bash str="a b c" array=($str) for ((i=0;i<${#array[@]};i++)) do   echo ${array[$i]} done

 執行結果:

a b c

2。字串用其他字元分割時

#!/bin/bash

str2="a#b#c" a=($(echo $str2 | tr '#' ' ' | tr -s ' ')) length=${#a[@]}

for ((i=0; i<$length; i++)) do     echo ${a[$i]} done #echo ${a[2]}

執行結果:

a b c

3。陣列的其他操作

#!/bin/bash str="a b --n dd" array=($str) length=${#array[@]}

#ouput the first array element直接輸出的是陣列的第一個元素 echo $array

#Use subscript way access array用下標的方式訪問陣列元素 echo ${array[1]}

#Output the array輸出這個陣列 echo ${array[@]}

#Output in the array subscript for 3 the length of the element輸出陣列中下標為3的元素的長度 echo ${#array[3]}

#Output in the array subscript 1 to 3 element輸出陣列中下標為1到3的元素 echo ${array[@]:1:3}

#Output in the array subscript greater than 2 elements輸出陣列中下標大於2的元素 echo ${array[@]:2}

#Output in the array subscript less than 2 elements輸出陣列中下標小於2的元素 echo ${array[@]::2}

執行結果:

a b a b --n dd 2 b --n dd --n dd a b

4。遍歷訪問一個字串(預設是以空格分開的,當字串是以其他分隔符分開時可以參考2)

#!/bin/bash str="a --m" for i in $str do     echo $i done

執行結果:

a --m

5。如何使用echo輸出一個字串str="-n". 由於-n是echo的一個引數,所以一般的方法echo "$str"是無法輸出的. 解決方法可以有:

echo x$str | sed 's/^x//' echo -ne "$str\n" echo -e "$str\n\c" printf "%s\n" $str(這樣也可以)

注意:echo的引數及其具體含義:

       \c     suppress trailing newline抑制尾隨換行符

       \n     new line換行

       \r     carriage return回車

       \t     horizontal tab水平標籤

       \v     vertical tab垂直標籤

      -n     do not output the trailing newline不輸出換行符後面的

      -e     enable interpretation of backslash escapes能夠使用逃逸字元

6.如何打印出一個數組的所有內容

array=`echo app-mds-console.war |sed -e 's/[-_]/ /g'|awk -F. '{print $1}'`

echo $array

輸出結果:app mds console

for name in $array

do 

echo $name

done

執行結果:

app mds console ---------------------  作者:紫穎  來源:CSDN  原文:https://blog.csdn.net/zhuying_linux/article/details/6778877  版權宣告:本文為博主原創文章,轉載請附上博文連結!