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

本文详细介绍了Shell脚本中的函数定义与使用方法,包括基本格式、示例及应用场景;同时深入探讨了Shell数组的定义、赋值、查询、删除等操作,以及数组截取与替换技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

shell中的函数

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。
格式: function f_name() {
                      command
             }

简单示例1:函数必须要放在最前面

#!/bin/bash
function etc(){
        echo "one $1"
        echo "two $2"
        }
etc 1 2

 输出结果如下:

[root@ shell]# sh funciton 
one 1
two 2
[root@ shell]# 

示例2:运算加减

#!/bin/bash
function add(){
	s=$[$1+$2]
	}
add 1 3
echo $s

过程如下:

[root@iZwz988z4yuz7a6sqgivwxZ shell]# sh -x funciton2 
+ add 1 3
+ s=4
+ echo 4
4

示例3:查看IP地址

#!/bin/bash
function ip(){
	ifconfig|grep -A1 "$1"| awk '/inet/ {print $2}' 
	}
read -p "please input the network name: " use
myip=`ip $use`
echo "$use is $myip"


#ifconfig  查询IP地址
#grep -A1 "$1"   查询第一段
#awk '/inet/ '{print $2}' 查找inet字符列出后打印第二列(即IP地址)

#read -P  把use当初read的变量     用户输出  
#myip=`ip $use`  设置变量(myip)=调用函数IP+用户输出
#echo  打印myip和use变量 

运行结果如下

+ read -p 'please input the network name: ' use
please input the network name: eth0 
++ ip eth0
++ grep -A1 eth0
++ awk '/inet/ {print $2}'
++ ifconfig
+ myip=172.18.220.248
+ echo 'eth0 is 172.18.220.248'
eth0 is 172.18.220.248

 

shell中的数组 

定义数组:

[root@shell]# a=(`seq 1 5`)
[root@ shell]# echo ${a[*]}
1 2 3 4 5
[root@ shell]# echo ${#a[*]}
5

#`seq 1 5` 序数12345
#获取数组内容  ${a[*]}或者${a[@]}
#获取数组的元素个数 ${#a[*]}   ---前面加个#号

数组赋值和查询:

数组查询:是从下标0开始

[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 2 3 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[0]}
1
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[1]}
2
[root@iZwz988z4yuz7a6sqgivwxZ shell]# 

数组赋值:

[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 2 9 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# a[2]=6
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 2 6 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# 


#赋值a[下标]=赋值  ---a[2]=6

#添加下标
[root@iZwz988z4yuz7a6sqgivwxZ shell]# a[5]=10
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 2 6 4 5 10
[root@iZwz988z4yuz7a6sqgivwxZ shell]# 

#只需添加多一个下标即可

数组删除:

[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 2 6 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# unset a[0]
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
2 6 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# 


#删除数组里的一个值只需 unset a[下标] ---unset a[0]

截取数组和替换

#截取数组  
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 1 6 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]:0:3}
1 1 6
# ${a[*]:0:3} 0代表从第一个开始截取  3代表截取3个  以冒号为分割

#倒数截取数组

[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 1 6 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]:0-3:2}
6 4
#   ${a[*]:0-3:2}   0-3代表倒数第3个开始截取  2表示截取2个

#数组替换

[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]}
1 1 6 4 5
[root@iZwz988z4yuz7a6sqgivwxZ shell]# echo ${a[*]/1/10}
10 10 6 4 5

#类似sed的替换   

 

告警系统需求分析

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值