shell中数组和文件包含

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

数组定义,遍历,长度等,文件包含

bash支持一维数组(不支持多维数组),并且没有限定数组的大小
类似与C语言,数组元素的下标由0开始编号,获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0
定义
在Shell中,用括号来表示数组,数组元素用“空格”符号分割开

array_name=(value1 vaule2 ... valuen)
或者
array_name=(
value1
value2
...
valuen
)
也可以单独定义
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

可以不使用连续的下标,而且下标的范围没有限制

读取数组

${array_name[index]}
[root@bogon sh]# arr=(a b 0 1 0.5)
[root@bogon sh]# echo ${arr[0]}
a
[root@bogon sh]# echo ${arr[1]}
b
[root@bogon sh]# echo ${arr[4]}
0.5

使用@ 或 * 可以获取数组中的所有元素

${array_name[*]}
${array_name[@]}
[root@bogon sh]# echo  ${arr[*]}
a b 0 1 0.5
[root@bogon sh]# echo  ${arr[@]}
a b 0 1 0.5
[root@bogon sh]# for i in ${arr[*]};do echo $i;done;
a
b
0
1
0.5
[root@bogon sh]# for i in ${arr[@]};do echo $i;done;
a
b
0
1
0.5

获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同

length=${#array_name[@]}
 或者
length=${#array_name[*]}

取得数组单个元素的长度

lengthn=${#array_name[n]}
[root@bogon sh]# echo ${#arr[@]}
5
[root@bogon sh]# echo ${#arr[*]}
5
[root@bogon sh]# echo ${#arr[4]}
3
[root@bogon sh]# arr[5]=100
[root@bogon sh]# echo ${arr[*]}
a b 0 1 0.5 100

文件包含
. filename 或者 source filename
被包含的文件不需要有执行权限

#! /bin/bash
#获取本机ip
ip(){
  eth=$1
  ifconfig|grep $eth  -A1|tail -1|awk '{print $2}'|cut -d ':' -f2
}
[root@bogon sh]# cat m.sh 
#! /bin/bash
. ./ip.sh
read -p '请输入网卡名称:' eth
ip $eth
[root@bogon sh]# sh m.sh
请输入网卡名称:eno16777736
10.105.7.108

 



阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shell