欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>帮助教程>Linux 系统教程

目录导航

shell编程之数组定义

香港CPC机房 发布于 2014-01-14   shellshell编程

Linux 系统教程

参考资料

* 《学习bash shell 第3 版》6.4. Arrays
Bash 中还可以使用数组变量 , 其赋值有两种 :
(1) name = (value1 ... valuen) 此时下标从 0 开始,也可以: names=([2]=alice [0]=hatter [1]=duchess)。
(2) name[index] = value


数组可以使用 declare –a 来显示声明, 数组下标的范围没有任何限制 , 同时也不必使用连续的分量。可以通过 ${ array [i]}. 访问数组中的元素。如果不指定元素,则表示第一个元素。 @ 与 * 相同,但是使用时加引号,并在引号中返回每个参数, *则作为一个整体的字符串返回。
# A=(a b c def)
# echo ${A[@]}
a b c def
# echo ${A}  
a
echo ${A[*]}
a b c def
for i in "${A[@]}"; do
     echo $i
done
显示的结果:
a
b
c
def
for i in "${A[*]}"; do
echo $i
done
显示结果:
a b c def

显示目前有值的数组序号:―― bash 3.0 以后才支持。
# echo ${!A[@]}
0 1 2 3
// 取得数组元素的个数
# echo ${#A[@]}
4
显示第 3 个元素里面的元素的个数:
echo ${#A[3]}
3
echo ${#A[2]}
1

// 清除变量
$ unset A
$ echo ${A[@]}
$
A=B
B=C
unset $A 事实上所取消的变量是 B 而不是 A

// 清空变量 , 即将值变为空
$ A=
$ echo ${A[@]}
$

#!/bin/bash
     for i in $(cut -f 1,3 -d: /etc/passwd) ; do
         echo $i
         array[${i#*:}]=${i%:*}
     done
echo "User ID $1 is ${array[$1]}."
echo "There are currently ${#array[@]} user accounts on the system."

用 shell 实现的选择排序

# vi test2
#!/bin/bash
 
     values=(39 5 36 12 9 3 2 30 4 18 22 1 28 25)
     numvalues=${#values[@]}
     for (( i=0; i < numvalues; i++ )); do
         lowest=$i
         for (( j=i+1; j < numvalues; j++ )); do
             if [ ${values[j]} -le ${values[$lowest]} ]; then
                 lowest=$j
             fi
         done
         temp=${values[i]}
         values[i]=${values[lowest]}
         values[lowest]=$temp
     done
     for (( i=0; i < numvalues; i++ )); do
         echo -ne "${values[$i]}/t"
     done
echo -e "/n/n-------end---------/n"

环境变量 DIRSTACK 就是使用数组实现的。其他还有BASH_VERSINFO , PIPESTATUS



字符串转数组
str="12 34 56"
arr=($str)
count=${#arr[@]}
for (( i=0;i<count;i=i+1))
do
     echo "$i=arr[$i]"
done

到零度科技查看原文:http://www.ldisp.com/a/linux/2014/shell-array.shtml

上一篇:备份Crontab内容(CentOS定时任务备份)
下一篇:shell脚本语法 - if/then/elif/else/fi

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

0

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理