设为首页 收藏本站
查看: 932|回复: 0

shell 脚本 ---数组

[复制链接]

尚未签到

发表于 2018-8-25 11:26:18 | 显示全部楼层 |阅读模式
  数组的定义:所谓数组,就是相同数据类型的元素按一定顺序的集合,就是把有限个类型相同的变量用一个名字命令,也就是说这些变量被定义成数组之后,它们就不在有自己的名字了,那么我们怎么找到各个变量或者元素呢?是通过索引或者下标(有时候也称下标变量)
  数组特点:
  1、数组是相同数据类型元素的集合
  2、数组中的各个元素是有先后顺序的,它们在内存中按照这个先后顺序放在一起,也就是说:        数组是内存中连续的一段空间。
  3、数组元素用整个数组名字和它自己在的数组中的顺序位置来表示,A[0] 表示:数组A中的第        一个元素(或者第一个分量)以此类推,在bash shell中数组下标(索引)从0开始。
  例子:现在有aa、bb、cc、dd、ee、ff 六个元素,以他们为名在/tmp下创建这几个文件,使用for循环的方式。怎么写呢?
  首先说说数组的赋值方法吧:
  第一种方法:
  ARRAY=(aa bb cc dd ee ff)每个元素之间使用空格分开。
  第二种方法:使用键值对的方法(key=value)
  ARRAY=([0]=aa [1]=bb [2]=cc [3]=dd [4]=ee [5]=ff)
  第三种方法: 可以使用declare -a 来声明一个变量类型为数组类型,稍后为其赋值。
  declare -a ARRAY
  ARRAY[0]=aa
  ARRAY[1]=bb
  ARRAY[2]=cc
  ARRAY[3]=dd
  ARRAY[4]=ee
  ARRAY[5]=ff
  这种方法来给数组赋值,但是有个缺陷,当数组分量(元素)相对较多时候,这种方法就显得有点笨了
  第四种方法:用系统执行命令的结果作为数组元素。
  即:ARRAY=($(ls))这种方式
  declare -a ARRAY   #先声明一个变量,为数组类型
  values="aa bb cc dd ee ff"  #将数组中的各个元素保存在一个变量中用空格作为分隔符
  ARRAY=($(echo ${values}))
  来写写这个脚本呗:下面有文本模式的....
  ###########################################################
DSC0000.png ########################################################################################

  #!/bin/bash
  #Author:wangergui       Email:291131893@qq.com          Date:2016-08-26
  #Release 1.0
  #Function: auto create files (practice array)
  PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin
  export PATH
  FILES="aa bb cc dd ee ff"
  declare -a ARRAY
  ARRAY=($(echo ${FILES}))
  INDEX=$(( ${#ARRAY[@]} -1))
  function check (){
  if [ ! -f "$1" ];then
  return 0
  else
  return 1
  fi
  }
  for I in $(seq 0 ${INDEX});do
  check /tmp/${ARRAY[${I}]}
  if [ $? -eq 0 ];then
  touch /tmp/${ARRAY[${I}]}
  fi


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556331-1-1.html 上篇帖子: shell 计算1 100 相加 下篇帖子: 1212 sort\sed\vim\shell-Stephen
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表