【Linux中高级运维: 第56天——Shell编程】第7章: for循环打印字母数不大于6的单词

传统多变量定义
a=1
b=2
c=3

一条命令定义1000个变量极其困难的。

shell数组:批量定义变量,并赋值。
简单地说,Shell的数组就是把多个元素(变量或字符内容)用一个名字命名,然后用编号对它们进行区分的元素集合。这个名字就称为数组名,用于区分不同内容的编号就称为数组下标。组成数组的各个元素(变量)称为数组的元素,有时也称为下标变量。

定义方法:
array=(value1 value2 value3 … )

[root@web01 ~]# array=(1 2 3) #推荐
[root@web01 ~]# echo ${array[0]}
1
[root@web01 ~]# echo ${array[1]}
2
[root@web01 ~]# echo ${array[2]}
3

[root@web01 ~]# echo ${array[*]}
1 2 3

[root@web01 ~]# echo ${array[@]}
1 2 3

[root@web01 ~]# echo ${#array[@]}
3
数组就是特殊的变量
array=(value1 value2 value3 … )

方法2:用小括号将变量值括起来,同时采用键值对的形式赋值。
语法如下:
array=([1]=one [2]=two [3]=three)
[root@web01 ~]# array=([1]=one [2]=two [3]=three)
[root@web01 ~]# echo ${array[1]}
one
[root@web01 ~]# echo ${array[2]}
two
[root@web01 ~]# echo ${array[3]}
three

方法3:通过分别定义数组变量的方法来定义。
语法如下:
array[0]=a;
array[1]=b;
array[2]=c

增加数组元素:
[root@web01 ~]# array=(1 2 3)
[root@web01 ~]# array[3]=4
[root@web01 ~]# echo ${array[*]}
1 2 3 4

删除数组元素
[root@web01 ~]# unset array[3]
[root@web01 ~]# echo ${array[*]}
1 2 3

修改:
[root@web01 ~]# array[2]=4
[root@web01 ~]# echo ${array[*]}
1 2 4

替换:
[root@web01 ~]# echo ${array[*]/1/oldboy}
oldboy 2 4

数组练习
array=(1 2 3)
for n in ${array[]}
do
echo n d o n e e c h o = = = = = = = = = = = = = = = = f o r ( ( i = 0 ; i < n done echo ================ for((i=0;i< ndoneecho================for((i=0;i<{#array[
]};i++))
do
echo ${array[i]}
done

13.4 Shell数组的重要命令
(1)定义命令
静态数组:
array=(1 2 3)
动态数组:
array=($(ls))或array=(ls)
给数组赋值:
array[3]=4
(2)打印命令
打印所有元素:
a r r a y [ @ ] 或 {array[@]}或 array[@]{array[]}
打印数组长度:
KaTeX parse error: Expected '}', got '#' at position 2: {#̲array[@]}或{#array[
]}
打印单个元素:
KaTeX parse error: Expected 'EOF', got '#' at position 29: … #̲<==i是数组下标。 (3)循…{#arr[*]};i++))
do
echo “KaTeX parse error: Expected '}', got 'EOF' at end of input: {arr[i]}”
done
echo ---------------
#普通for循环语法
for n in a r r [ ∗ ] d o e c h o " {arr[*]} do echo " arr[]doecho"n"
done

课后作业:使用数组做下面的考试题

范例13_4:利用bash for循环打印下面这句话中字母数不大于6的单词(某企业面试真题)。
I am oldboy teacher welcome to oldboy training class

范例13_5:批量检查多个网站地址是否正常
要求:
1)使用Shell数组方法实现,检测策略尽量模拟用户访问。
2)每10秒钟做一次所有的检测,无法访问的输出报警。
3)待检测的地址如下。
http://blog.oldboyedu.com
http://blog.etiantian.org
http://oldboy.blog.51cto.com
http://10.0.0.7
解题思路:
1)把URL定义成数组,形成函数。
2)编写URL检查脚本函数,传入数组的元素,即URL。
3)组合实现整个案例,编写main主函数(即执行函数),每隔10秒检查一次。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值