shell—數組的使用

來源:互聯網
上載者:User

轉自:http://www.jb51.net/article/34323.htm

說明: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

 

執行結果:
[oracle@99bill-as9 array]$ sh length.sh
4
a

--n
d

2)、列印字串:

複製代碼 代碼如下:
#!/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

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

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

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(這樣也可以)

詳細出處參考:http://www.jb51.net/article/34323.htm

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.