shell函数和数组

news/2024/9/20 16:33:37

函数

定义函数

##第一种:简单常用
函数名(){
脚本(命令集合)
}##第二种:
function 函数名{
脚本内容(命令集合)
}##第三种
function 函数名(){
脚本(命令集合)
}

函数使用

#!/bin/bash
num(){   ##num是定义的函数名称
a=66
echo ${a}
}num  ##这里的num是调用上面的num函数脚本

关于declare查询的用法 

【查看函数列表】
declare -F
#查看当前已定义的函数名,仅仅显示名称declare -f
#查看当前已定义的函数定义,包含脚本代码declare -f 函数名称
#查看该函数是否存在(这里必须是已经用source或者.已经声明过的函数内容,要不然系统无法识别)declare -F 函数名称
#查看当前已定义的函数,以及详细代码unset 函数名
#表明从系统中删除定义的函数,但是如果函数脚本使用source再次声明,还是会存在的

关于函数的增加与调用

 函数返回值

return

return表示退出函数并返回一个退出值,脚本中可以用$?变量表示该值

使用原则:

  1. 函数一结束就去返回值,应为$?变量只返回执行的最后一条命令的退出返回码

  2. 退出码必须是0-255,超出的值将为除以256取余

echo

echo任意值。

#!/bin/bash
test1 () {read -p "请输入一个数字:" numecho $[$num*2]
}
result=`test1`
echo $result

函数的环境变量和内置变量:local

 数组

数组的分类

普通数组(数值型)

下标索引是从0开始的数字,下标数字是可以不连续的

普通数组是系统会自动进行声明的

 关联数组(字符型)

要使用declare -A 数据名称进行声明

declare -a 可以查看所有的普通数组;declare -A 可以查看所有的关联数组 ;

 找出数组中的最大和最小值

#!/bin/bash
for i in {0..6}
do
num[$i]=$[RANDOM%10]
[[ $i -eq 0 ]] && min=${num[0]} && max=${mun[0]}  ##当有第一个数组时,最大值和最小都是它
[[ ${num[$i]} -gt max ]] && max=${num[$i]}     ##表示随机产生的数字与最大值比较,如果大成立,则执行将其值赋给max
[[ ${num[$i]} -lt min ]] && min=${num[$i]}
done
echo "所有随机数为:${num[*]}"
echo "最大值为:${max}"
echo "最小值为:${min}"

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

BOSHIDA AC/DC电源模块的故障诊断与维修技巧

BOSHIDA AC/DC电源模块的故障诊断与维修技巧 AC/DC电源模块是一种常用的电力转换设备,用于将交流电转换为直流电供给电子设备。然而,由于使用环境和操作不当等原因,电源模块可能会出现故障。本文将介绍AC/DC电源模块的故障诊断与维修技巧。 故障诊断的第一步是检查输入电源…

如何对SQL Server中的敏感数据进行加密解密?

为什么需要对敏感数据进行加密? 近几年有不少关于个人数据泄露的新闻(个人数据通常包含如姓名、地址、身份证号码、财务信息等),给事发公司和被泄露人都带来了不小的影响。 许多国家和地区都出台了个人数据保护的法律法规,如欧盟的通用数据保护条例(GDPR)。不管是出于遵…

MindSponge分子动力学模拟——自定义控制器(2024.05)

本文介绍了在MindSponge分子动力学模拟框架先实现自定义Controller控制器的方法,通过调控体系中的原子坐标和原子速度等,来控制系综的参量。MindSponge分子模拟框架基于MindSpore深度学习框架开发而成,对于开发者尤其是深度学习开发者来说,非常的友好。技术背景 分子动力学…

PixelBook go刷回Chrome OS 小记(无备份BIOS恢复BIOS+刷回chrome os)

参考 主要看这两篇文章即可 文章A:How to Restore a Chromebook’s Original BIOS 文章B:chromebook恢复bios及刷回chrome os教程 特别感谢网站(跪谢):MrChromebox overview 先说现在系统的状态:第三方bios+Win11 接下来需要进行的步骤, 大概分为三步:安装/引导fydeos 恢…

index.js from Terser Error: error:0308010C:digital envelope routines::unsupported

Vue 报错error:0308010C:digital envelope routines::unsupported 出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响. 方法1.打开终端(按健win+R弹出窗口,键盘输入cmd,然后敲回…

原型设计工具介绍

主流原型设计工具介绍在当今的互联网和移动应用开发领域,原型设计工具扮演着至关重要的角色。它们不仅能够帮助设计师和开发人员更高效地传达设计理念和功能需求,还能通过模拟真实用户体验来优化产品设计。 1.sketch Sketch是一款专为设计师打造的矢量图形设计工具,特别适用…

安捷伦34401A原理图研究 24年-5-15

1. 原理图分为9页,如下 第6页的主控使用 80C192,是INTEL 早期出的16位单片机,外接的256K EPROM, 32K SRAM。 第7页有个单片机 87C51, 是51单片机,主要是用来GPIB和RS232通信用 第9页也有个单片机 87C51, 是51单片机,所以据我所知一共3个单片机。 2. ASIC 定制芯片不熟悉…

使用Qt Designer作为原型设计工具

Qt Designer是一个用于创建 Qt 用户界面的图形化界面设计器工具。它专门用于创建基于 Qt 框架的应用程序的用户界面,可以创建 Qt Widgets、Qt Quick Controls 等元素,并通过拖放和属性编辑器来设计界面布局,然后将其与代码集成。Qt Designer 是为了在 Qt 应用程序开发过程中…