linux shell 数组运算,[转]shell 中的数组运算

Bash中还可以使用数组变量,其赋值有两种:

(1) name = (value1 ... valuen) 此时下标从0开始

(2) name[index] = value

数组下标的范围没有任何限制,同时也不必使用连续的分量.

$ A=(a b c def)

==================================================

$ echo

${A[@]} //取全部元素

a b c def

=================================================

$ echo

${A[0]} //取第一个元素

a

=================================================

//取得数组元素的个数

$ echo ${#A[@]}

4

$ echo ${#A[*]}

4

$ echo

${#A[3]} //取得元素3的长度

$

==================================================

$

A[3]=yaoshuyin //将第三个元素重新赋值

$ echo ${A[@]}

a b c yaoshuyin

==================================================

//清除变量

$ unset A

$ echo ${A[@]}

$

==================================================

//清空变量,即将值变为空

$ A=

$ echo ${A[@]}

$

==================================================

A=B

B=C

unset $A 事实上所取消的变量是 B 而不是 A

=======================示例 while循环========================

#建立数组

arrSource=("arrJobs.php" "arrSubHangye.php" "arrFirst.php" )

arrDest=("buildhr"

\

"buildtrain/htdocs"

\

"bankhr"

\

"healthr" \

"elehr" \

)

#取数组无元素个数

lenArrSource=${#arrSource[*]}

lenArrDest=${#arrDest[*]}

#循环列出数组元素

i=0

while [ $i -lt $lenArrSource ]

do

echo ${arrSource[$i]}

let i++

done

i=0

while [ $i -lt $lenArrDest ]

do

echo

${arrDest[$i]}

let i++

done

=======================示例:

for循环===============================

#源文件

arrSource=("/home/800hr/htdocs/login_jump.php")

#目标网站

arrDest=(ithr elehr buildhr bankhr healthr ctvhr chenhr mechr

clothr cneduhr 56hr tourhr foodhr greenhr cnlawhr waimaohr)

for outer in

${arrSource[*]} #${arrSource[*]}

是数组中的所有元素

do

for inner in

${arrDest[*]}

do

echo "ln -s $outer /home/${inner}/campus/"

done

done

bash只提供一维数组,并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标。下标可以是整数或算术表达式,其值应大于或等于0。用户可以使用赋值语句对数组变量赋值。对数组元素赋值的一般形式是:数组名[下标]=值例如:

$ city[0]=Beijing

$ city[1]=Shanghai

$ city[2]=Tianjin

也可以用declare命令显式声明一个数组,一般形式是:

declare -a 数组名

读取数组元素值的一般格式是:

${数组名[下标]}

例如:

$ echo ${city[0]}

Beijing

一个数组的各个元素可以利用上述方式一个元素一个元素地赋值,也可以组合赋值。定义一个数组并为其赋初值的一般形式是:数组名=(值1 值2

... 值n),其中,各个值之间以空格分开。

例如:

$ A=(this is an example of shell script)

$ echo ${A[0]} ${A[2]} ${A[3]} ${A[6]}

this an example script

$ echo ${A[8]}

由于值表中初值共有7个,所以A的元素个数也是7。A[8]超出了已赋值的数组A的范围,就认为它是一个新元素,由于预先没有赋值,所以它的值是空串。

若没有给出数组元素的下标,则数组名表示下标为0的数组元素,如city就等价于city[0]。

使用*或@做下标,则会以数组中所有元素取代

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值