大佬教程收集整理的这篇文章主要介绍了shell学习二十九--数组,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
s
Hell数组 数组:简单的说就是相同数据类型的元素按一定顺序排列的组合。 数组是把有限的类型相同的变量用一个名字命名,然后用用编号区分他们的变量的集合。 这个名字成为数组名,编号成为数组下标。 何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合 (不包括有一些编程语言提出来的关联数组的概念)。那么s
Hell中数组是怎么定义的呢, 我们来看两种数据类型:一是数值类型,二是字符串类型;
虽然s
Hell本身是弱类型的, 但也可以这么区分。 一堆元素的集合。 数值类型的数组:一对括号表示数组,数组中元素之间
使用“空格”来隔开。 举个列子: arr_
number=(1 2 3 4 5
); 字符串类型数组:同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样
使用“空格”来隔开。 arr_
String=("abc" "edf" "sss"
); 或者 arr_
String=('abc' 'edf' 'sss'
); 数组的定义与增删改查 方法1:array=(value1 value2 value3...) 数组定义 [root@node01 ~]# array=(1 2 3) 获取数组的长度 [root@node01 ~]# echo $
{#arra
Y[@]} 3 [root@node01 ~]# echo $
{#arra
Y[*]} 3 数组打印 [root@node01 ~]# echo $
{array
[0]} 1 [root@node01 ~]# echo $
{arra
Y[1]} 2 [root@node01 ~]# echo $
{array[2]} 3 [root@node01 ~]# echo $
{arra
Y[4]} [root@node01 ~]# [root@node01 ~]# echo $
{arra
Y[@]} 1 2 3 数组赋值 [root@node01 ~]# arra
Y[3]=4 往数组添加值 [root@node01 ~]# echo $
{arra
Y[@]} 1 2 3 4 [root@node01 ~]# echo $
{arra
Y[3]} 4 [root@node01 ~]# arra
Y[1]=wolf [root@node01 ~]# echo $
{arra
Y[@]} 1 wolf 3 4 [root@node01 ~]# array=(1 2 3) [root@node01 ~]# unset array
[0] [root@node01 ~]# echo $
{arra
Y[@]} 2 3 [root@node01 ~]# 数组删除 [root@node01 ~]# unset array [root@node01 ~]# echo $
{arra
Y[@]} [root@node01 ~]# 截取 [root@node01 ~]# echo $
{#arra
Y[@]} 2 [root@node01 ~]# array=(1 2 3 4 5) [root@node01 ~]# echo $
{arra
Y[@]:2:3} 第二个开始截取,取3个 3 4 5 [root@node01 ~]# echo $
{arra
Y[@]:
2} 3 4 5 [root@node01 ~]# echo $
{arra
Y[@]:
2} 3 4 5 [root@node01 ~]# echo $
{arra
Y[@]
:1} 2 3 4 5 [root@node01 ~]# echo $
{arra
Y[@]:0} 1 2 3 4 5 替换(变量子串等操作) [root@node01 ~]# echo $
{arra
Y[@]/3/4} 1 2 4 4 5 调用语法是:$
{@或者*/查找字符/替换字符}该操作不会改变原先数组内容,如果需要修改,可以看上面的例子,重新定义数组。 [root@node01 ~]# array=(1 2 3 4 5) [root@node01 ~]# array1=($
{arra
Y[@]/2/4}) 2替换为4 [root@node01 ~]# echo $
{array1[@]} 1 4 3 4 5 应用 array=($(ls)) [root@node01 ~]# echo $
{#arra
Y[@]} 21 [root@node01 ~]# echo $
{arra
Y[1]} apache-maven
-3.3.9-bin.tar.gz [root@node01 ~]# echo $
{arra
Y[@]} anaconda-k
s.cfg apache-maven
-3.3.9-bin.tar.gz bind-9.10.6 bind-9.10.6.tar.gz Desktop Documents Downloads etc_2017-07-29.tar.gz file grep.log instal
l.log instal
l.log.syslog
jenkin
s.war Music Pictures Public Templates tmp_2017-07-29.tar.gz Videos whoami-strace.txt wolf [root@node01 ~]# for ((i
=0; i<$
{#arra
Y[@]};i++)
);do echo $
{arra
Y[$i]};done anaconda-k
s.cfg apache-maven
-3.3.9-bin.tar.gz bind-9.10.6 bind-9.10.6.tar.gz Desktop Documents Downloads etc_2017-07-29.tar.gz file grep.log instal
l.log instal
l.log.syslog
jenkin
s.war Music Pictures Public Templates tmp_2017-07-29.tar.gz Videos whoami-strace.txt wolf [root@node01 ~]# for i in $
{arra
Y[@]};do echo $i;done anaconda-k
s.cfg apache-maven
-3.3.9-bin.tar.gz bind-9.10.6 bind-9.10.6.tar.gz Desktop Documents Downloads etc_2017-07-29.tar.gz file grep.log instal
l.log instal
l.log.syslog
jenkin
s.war Music Pictures Public Templates tmp_2017-07-29.tar.gz Videos whoami-strace.txt wolf [root@node01 day13]# vi sz.sh #!/bin/sh array=(laolang wolf zhangs) for ((i
=0; i<$
{#arra
Y[*]}; i++)) do echo "this is $i,then content is $
{arra
Y[$i]}" done [root@node01 day13]# sh sz.sh this is 0,then content is laolang this is 1,then content is wolf this is 2,then content is zhangs [root@node01 day13]# vi sz.sh #!/bin/sh array=(laolang wolf zhangs) for ((i
=0; i<$
{#arra
Y[*]}; i++)) do echo "this is $i,then content is $
{arra
Y[$i]}" done for i in $
{arra
Y[@]} do echo "$i" done [root@node01 day13]# sh sz.sh this is 0,then content is zhangs laolang wolf zhangs 数组小结: 定义 array=(1 2 3) array=($(ls)) 打印 $
{arra
Y[@]}所有元素 $
{#arra
Y[@]}所有元素 $
{arra
Y[i]} 单个元素,i是下标 取数组的部分 检查网站URL地址 [root@node01 day13]# cat array01.sh #!/bin/bash [ -f /etc/init.d/functions ] &&
source /etc/init.d/functions #define array url list array=(
http://www.etiantian
.org
http://www.taobao.com
http://oldboy
.blog.51cto.com
http://www
.baidu.com ) #
check_url wait()
{ echo -n "wait 3s" for((i
=0;i<3;i++)) do echo -n "." sleep 1 done echo }
check_url()
{ wget -T 5 -t 2 --spider $1 &>/dev/null RETVAL=$? if [ $RETVAL -eq 0 ];then action "
check $1" /bin/true else action "
check $1" /bin/
false fi return $RETVAL } main()
{ wait for((i
=0;i<$
{#arra
Y[@]};i++)) do
check_url $
{arra
Y[i]} done } main [root@node01 day13]# sh array01.sh wait 3
s...
check
http://www.etiantian
.org [ OK ]
check
http://www.taobao.com [Failed]
check
http://oldboy
.blog.51cto.com [ OK ]
check
http://www
.baidu.com [ OK ]
大佬总结
以上是大佬教程为你收集整理的shell学习二十九--数组全部内容,希望文章能够帮你解决shell学习二十九--数组所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。