专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>shell基础篇>

容易被忽略的shell数组

百度收藏 QQ搜藏

说到数组变量,其实在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循环的shell数组示例================

#建立数组
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

上一篇:实用程序awk编程结构 下一篇:深入浅出掌握Shell 变量

power by soyo123 2007-2008