shell 脚本 ---数组

数组的定义:所谓数组,就是相同数据类型的元素按一定顺序的集合,就是把有限个类型相同的变量用一个名字命令,也就是说这些变量被定义成数组之后,它们就不在有自己的名字了,那么我们怎么找到各个变量或者元素呢?是通过索引或者下标(有时候也称下标变量)

数组特点:

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}))

来写写这个脚本呗:下面有文本模式的....

###########################################################

########################################################################################

#!/bin/bash

#Author:wangergui       Email:[email protected]          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

时间: 2024-10-26 05:48:15

shell 脚本 ---数组的相关文章

shell脚本数组的数学运算

今天在用shell脚本写斐波那契数列计算时,一直不停的报错,主要原因是因为shell脚本实在太不智能,在进行数组运算时需要写大量的符号,很容易混淆,所以稍微总结一下数组元素的计算. 首先,有几种情况: 1 在将一个数学运算结果赋值给某普通变量时: (1) let var=算术表达式 (2) var=$[算术表达式] (3) var=$((算术表达式)) (4) var=$(expr arg1 arg2 arg3 ...) 2 在将一个数学运算结果赋值给某数组元素时: (1)let arr[$i]

如何在linux Shell脚本里面把一个数组传递到awk内部进行处理

前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法.前两天在QQ群里讨论awk的时候,无意间又聊起这个话题.机缘巧合之下找到一个思路,特此分享. 测试环境: [root]# head -1 /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago) [root]# awk --version | head -1 GNU Awk 3.1.7 众所周知

Linux中的shell脚本编程——数组 ,高级字符串操作 ,高级变量 ,配置用户环境

概述: 概述: 本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境. 一.函数和位置参数扩展 1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉     2.匿名函数的使用 第一篇:数组 一.数组的定义: 1.变量:存储单个元素的内存空间 2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 3.数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开

Shell脚本编程概述(三):函数和数组

一.函数:function 1.function概念 function是一种过程式编程,目的在于代码重用,是一种模块化编程.结构化编程编程方式 函数:把一段独立功能的代码当作一个整体,并为之一个名字:命名的代码段 注意: 1) 定义函数的代码段不会自动执行,在调用时执行:所谓调用函数,在代码中给定函数名即可: 2) 函数名出现的任何位置,在代码执行时,都会被自动替换为函数代码: 2.语法 语法一: function  FUNCTION_NAME  { ...函数体... } 语法二: FUNCT

数组-在Shell脚本中的基本使用介绍

Shell脚本在运维工作中是极其重要的,而数组在shell脚本里的运用无论是在循环或运算方面都是非常实用的一个环节.下面是对shell脚本中数组方面一些操作在此进行记录,希望能帮助到有兴趣的朋友~ 1.数组定义 [[email protected] ~]# a=(1 2 3 4 5 6 7 8)[[email protected] ~]# echo $a1一对括号表示是数组,数组元素用“空格”符号分割开. 2.数组读取与赋值 1)得到长度:[[email protected] ~]# echo

Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组

一.Shell替换:Shell变量替换,命令替换,转义字符 如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中: 转义字符

Shell脚本中的函数、数组

Shell脚本中的函数 Shell脚本中的数组 原文地址:http://blog.51cto.com/13515599/2107416

Linux学习总结(六十)shell脚本4-函数及数组

一 shell 中的函数 1 先了解脚本的几个系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 [email protected] 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误 2 函数的定义及用法函数就是把一段代码整理到了一个小单元中,并

shell脚本中的函数,shell中的数组,shell项目-告警系统

shell脚本中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function f_name() {command }函数必须要放在最前面,function可以省略直接写函数名 示列1,打印shell的参数 [[email protected] shell]# cat fun1.sh #!/bin/bash function inp(){ echo "the first par is $1" echo