shell中一维数组值得获取

(1)数组的定义

[email protected]:~# a=(1 2 3 4)

[email protected]:~# echo ${a[1]}
2

[email protected]:~# a[0]=1
[email protected]:~# a[1]=2

[email protected]:~# echo ${a[0]}
1

(2)数组值得获取

[email protected]:~# var[0]=1
[email protected]:~# var[1]=2

[email protected]:~# echo $var[1]
1[1]
[email protected]:~# echo ${var[1]}
2

(3)获取数组的长度。用${#数组名[@或*]} 可以得到数组长度

[email protected]:~# a=(10 20 30 40 50 60)
[email protected]:~# echo ${#a[*]}
6
[email protected]:~# echo ${#a[@]}
6

[email protected]:~# echo ${a[@]}
10 20 30 40 50 60

[email protected]:~# echo ${a[*]}
10 20 30 40 50 60

(4)数组的读取,用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容
[email protected]:~# echo ${a[1]}
20

[email protected]:~# echo ${a[*]}
10 20 30 40 50 60

(5)数组的赋值

[email protected]:~# a[3]=100

[email protected]:~# echo ${a[*]}
10 20 30 100 50 60

(6)数组的删除,直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。

[email protected]:~# echo ${a[*]}
10 20 30 100 50 60
[email protected]:~# unset a[1]
[email protected]:~# echo ${#a[@]}
5

[email protected]:~# echo ${a[*]}

[email protected]:~# unset a
[email protected]:~# echo ${#a[*]}
0

(7)分片使用,直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

A:tt只是一个变量,不是一个数组,所以一定要加啊()

[email protected]:~# tt=${a[*]:2:4}

[email protected]:~# echo $tt 30 40 50 60

[email protected]:~# echo ${tt[1]}

[email protected]:~# echo ${tt[2]}

B: c仍然是一个数组

[email protected]:~# echo ${a[*]}
10 20 30 40 50 60

[email protected]:~# c=(${a[*]:1:4})

[email protected]:~# echo ${c[*]}
20 30 40 50
[email protected]:~# echo $c
20

[email protected]:~# echo ${c[2]}
40
[email protected]:~# echo ${a[*]}
10 20 30 40 50 60

(8)替换,调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

[email protected]:~# echo ${a[*]}
10 20 30 40 50 60
[email protected]:~# echo ${a[*]/60/100}
10 20 30 40 50 100

[email protected]:~# echo ${a[*]}   //数组a的值是不变的
10 20 30 40 50 60

[email protected]:~# tt=${a[*]/100/1000}  //没有括号,则是一个变量,不是数组
[email protected]:~# echo $tt
10 20 30 40 50 60

[email protected]:~# echo ${tt[1]}

[email protected]:~# tt=(${a[*]/60/1000})  //有括号,则tt是一个数组

[email protected]:~# echo ${tt[5]}

1000

[email protected]:~# echo ${tt[*]}
10 20 30 40 50 1000
[email protected]:~# echo ${a[*]}  //数组a是没有变化的
10 20 30 40 50 60

时间: 2024-08-09 02:44:21

shell中一维数组值得获取的相关文章

20.16 20.17shell中的函数(上下);20.18 shell中的数组;20.19 告警系统需求分析

20.16 shell中的函数(上) 函数就是把一段代码整理到了一个小单元中,并给这个小单元起 一个名字,当用到这段代码时直接调用这个小单元的名字即可. 1. [[email protected] ~]# vi fun1.sh 添加内容: #!/bin/bash function inp(){ echo "The first par is $1" echo "The second par is $2" echo "The third par is $3&q

shell中的函数、shell中的数组、告警系统需求分析

20.16-20.17 shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function f_name() { command } 函数必须要放在最前面 脚本实例1 #!/bin/bash function inp(){ echo $1 $2 $3 $0 $# } inp 1 a 2 脚本实例2 #!/bin/bash sum() { s=$[$1+$2] echo $s } sum 1 2 脚本实例3

Shell脚本(函数,shell中的数组)

函数 函数就是把一段代码整理到一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式:function f_name(){ command } 函数必须放在最前面,函数名可以自己定义. 案例一: [[email protected] shell]# vim fun.sh #!/bin/bash function inp() { echo $1 $2 $3 $10 ${10} ${11} $0 $# [$*] } inp 1 2 3 4 5 6 7 8 9 3

20.16-20.17 shell中的函数;20.18 shell中的数组;20.19 告警系统需求

20.16 shell中的函数(上) 函数就是把一段代码整理到了一个小单元中,并给这个小单元起 一个名字,当用到这段代码时直接调用这个小单元的名字即可. 1. [[email protected] ~]# vi fun1.sh 添加内容: #!/bin/bash function inp(){ echo "The first par is $1" echo "The second par is $2" echo "The third par is $3&q

七十、shell中的函数、shell中的数组、告警系统需求分析

一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可.函数就是一个子shell,一个代码段. shell中的函数必须要定义在脚本的最上面. 格式: function f_name() { command }函数必须要放在最前面 f_name:函数名,最好不要和shell中的一些关键词冲突,比如for. command:具体命令 function这个单词可以省略掉的. 示例1 #!//bin/bash functio

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

shell中的函数 shell中的数组 告警系统需求分析

一.shell中的函数[[email protected] aming]# cd /root/shell/aming[[email protected] aming]# vim fun1.sh //需要注意函数名不能跟shell中的一些关键字冲突#!/bin/bashfunction inp(){echo $1 $2 $3 $0 $#} inp 1 a 2[[email protected] aming]# sh fun1.sh1 a 2 fun1.sh 3 //$0是脚本名称.3是参数个数 继

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求

20.16/20.17 shell中的函数函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可.格式: function f_name() {? ?? ?? ?? ?? ?? ?? ? command? ?? ?? ?? ? }函数必须要放在最前面示例1 #!/bin/bashinput() {? ? echo $1 $2 $# $0} input 1 a b 示例2 #!/bin/bashsum() {? ? s=$[$1+$2]? ?

20.16/20.17 shell中的函数20.18 shell中的数组20.19 告警系统需求分析

20.16/20.17 shell中的函数显示变量的隐函数执行的结果参数只有一个1,执行的结果 第一个是1,第二个是空的,第三个也是空的,肢本的名字是fun1.sh,总共有1个参数加法的函数显示IP的隐函数-A1是显示关键词的一行包括下一行精准查找到IP脚本就可以这样写,ip $eth 是输入一个网卡的名字#!/bin/baship() {ifconfig |grep -A1 "ens33: " |awk '/inet/ {print $2}'}read -p "Please