shell中数组的基本使用
admin
2023-07-28 21:20:07
0

参考文档:《老男孩 shell编程实战》


数组

 

数组的概念

数组的操作

定义和赋值

方法一:

a[1]="xianwei"

a[2]="qiuyue"

a[3]="duoduo"

方法二:

a=(1 2 3)#注意用空格而不是逗号

方法三:

a=([1]=one [2]=two [3]=three)

方法四:

a=(`ls /tmp`)

a=($(ls /tmp))

输出

注意打印的格式是 ${数组名[下标]}

printf "${a[1}"打印第一个元素

echo ${a[*]}打印所有元素

echo ${#a[*]}打印数组元素个数

遍历数组

for((i=0;i<${#array[*]};i++))

do

        echo $i ${array[$i]}

done

删除元素

unset a[1]

截取元素

echo ${array[*]:1:3}截取第2个到第4个元素

替换元素

(注意:原值不变)

  b=(1 2 1 4 5 6)

 echo ${b[*]/1/b}#1替换为b.原数组的值没有改变

 

脚本实例

示例1

[root@www shell]# cat array.sh

#!/bin/bash

 

 

a[1]="xianwei"

a[2]="qiuyue"

a[3]="duoduo"

 

for i in {1..3}

do

        printf ${a[i]}"\n"

done

 

[root@www shell]#

[root@www shell]# ./array.sh

xianwei

qiuyue

duoduo

[root@www shell]#


示例2

Awk中使用数组(注意用C风格)

[root@www shell]# cat awk.txt

#!/bin/awk

 

BEGIN{

 

a[1]="xianwei"

a[2]="qiuyue"

a[3]="duoduo"

 

for(i in a)

        print a[i]

 

}

[root@www shell]# awk -f awk.txt

xianwei

qiuyue

duoduo

[root@www shell]#

 

示例3 

【编程题】

对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。

 

给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。

 

测试样例:

["abc","de"],2

"abcde"

a=("kid" "yqt" "i" "k")

for((i=0;i<${#a[*]};i++))
do
  for((j=0;j



2017-9-4

相关内容

热门资讯

知名女企业家郭恒华遭刑拘,曾参... 郭恒华被刑拘了。消息放出时,这位安徽知名的女企业家,还有不到十天就要迎来自己62岁生日。几天前,她掌...
疑似失窃铜像现身私人博物馆,官... 关于网传疑似失窃铜像线索核查的通报近日有网络消息反映,某博物馆展出的一尊铜像,疑似我管理处2000年...
“城”长的幸福·河南城市更新系... 从空中俯瞰濮阳世纪景苑社区。 张博 摄新乡市新兴社区党群服务中心,红马甲志愿者在岗服务。 冀超 摄南...
黄河科技学院:守好课堂主阵地,... 6月30日,全国高校思想政治网报道黄河科技学院:守好课堂主阵地,用好文化活教材——铸牢中华民族共同体...
男子上厕所不掀马桶圈,妻子跟擦... 近日,浙江衢州一对再婚十年的夫妻因为闹离婚,找来了当地的调解员。事情起因是,丈夫小便时总是弄脏马桶圈...
中央批准:唐洪武任中山大学校长 “微言教育”7月3日消息,日前,中央批准:唐洪武同志任中山大学校长(副部长级)、党委副书记。7月3日...
美国曾提醒伊朗,当心以色列暗杀... 陈立希美国《纽约时报》2日以知情美国官员为消息源报道,美国和伊朗今春着手谈判时,以色列可能仍在密谋暗...
40岁初婚的男女:爱情、算计与... 晚婚和晚育,开始成为当代社会的主流。根据人口普查年鉴,过去40年间,中国人初婚年龄平均推迟了整整5岁...
魔笛谢幕,古典中场的世界杯终章 澎湃新闻记者 张颖终场哨响,莫德里奇走向场边。二十年世界杯镜头里,那个从战火中走出的牧羊少年,如今已...