当前位置: 首页 > ops >正文

shell编程基础入门-3

文章目录

  • 1、函数的使用
    • 1.1 概述
    • 1.2 函数的参数
    • 1.3 函数的返回值
  • 2、数组
    • 2.1 概述
    • 2.2 读取数组
    • 2.3 遍历数组
  • 3、加载其他文件的变量
  • 总结

1、函数的使用

1.1 概述

函数:可以理解成是一个功能。

  • 好处:当有了解决某个问题的函数(功能)时,程序员就可以直接调用这
    个函数直接解决问题
  • 分类
    • 内置函数:编程语言自带的函数
    • 自定义函数:自己编写的函数
##	自定义函数格式
function 函数名字 ()
{程序段/命令;return 结果
}
## 调用函数(使用其函数名即可)

1.2 函数的参数

  • 调用函数时可以向其传递参数
    • 在函数体内部,通过 $n 的形式来获取参数的值,例如 $1 表示第一个参数 $2 表示第二个参数…注意当 n>=10 时,需要使用 ${n} 来获取参数
#!/bin/bashfunWithParam()
{
echo "第一个参数为 $1"
echo "第二个参数为 $2"
echo "第十个参数为 $10"
echo "第十个参数为 ${10}"
echo "第十一个参数为 ${11}"
echo "参数总数有 $# 个"
echo "作为一个字符串输出所有参数 $*"
}
##	调用函数,并传递参数
funWithParam 1 2 3 4 5 6 7 8 9 567 890

在这里插入图片描述

1.3 函数的返回值

函数的返回值:函数内部在处理完所有问题后,需要有一个结果返回给调
用者

#! /bin/bash
function getMax(){if [ $1 -lt $2 ]; thenreturn $2elsereturn $1fi
}
echo "两个参数是:$1,$2"
getMax $1 $2
## 函数的返回值默认是存储在: $?
echo "最大值:$?"

在这里插入图片描述

2、数组

2.1 概述

  • 数组可以理解为是一个用来存放多个值的容器
  • 数组中存储的数据,通常可以称为:元素
  • 当数组中存储了多个元素后,就会给每一个元素添加一个编号(索引),从0 开始
## 语法格式
array_name=(value1 value2 value3 ...)

2.2 读取数组

## 读取元素值一般格式
${my_array[0]}
## 使用 @ 或 * 可以获取数组中的所有元素
${array_name[*]}
${array_name[@]}
## 获取数组长度的方法
${#array_name[*]}
${#array_name[@]}
#! /bin/bash
my_array=(A B C D 23 1 7 0)echo "第一个元素为:${my_array[0]}"
echo "第五个元素为:${my_array[4]}"
echo "数组的元素为:${my_array[@]}"
echo "数组的元素个数为:${#my_array[@]}"

在这里插入图片描述

2.3 遍历数组

遍历:把数组中存储的元素依次取出

## 方式一
#!/bin/bash
my_arr=(AA BB CC)
# 利用for循环 遍历数组
for var in ${my_arr[*]} ; do
echo $var
done## 方式二
#!/bin/bash
my_arr=(AA BB CC) 
## 获取数组的长度
my_arr_num=${#my_arr[*]} 
for((i=0;i<my_arr_num;i++));
do
echo ${my_arr[$i]}
done

在这里插入图片描述

3、加载其他文件的变量

## 脚本1
#!/bin/bash
echo "user  cpu  memory"
echo "$(whoami) $(top -bn1| grep "Cpu(s)" | awk '{print $2}') $(free -h|awk '/Mem/ {print $3}')"## 脚本2
#!/bin/bash
./ceshi12.sh | while  read user cpu mem 
doif [ "$user" = "user"  ] ;thenecho "user  cpu  memory hostname date"continuefihostname=$(hostname)date=$(date +"%Y-%m-%d %H:%M:%S")echo "$user $cpu $mem $hostname $date"done

在这里插入图片描述

总结

今天分享了函数(如何自定义函数)、数组(如何读取数组、遍历数组)以及脚本之间如何调用。

http://www.xdnf.cn/news/19417.html

相关文章:

  • Ansible之playbook剧本
  • 【Spark Core】(三)RDD的持久化
  • nrf52840 解锁
  • Linux部署OSM本地服务测试环境
  • Ubuntu 25.10 Snapshot4 发布。
  • 电动两轮车手机导航投屏方案调研报告
  • 「日拱一码」076 深度学习——自然语言处理NLP
  • SOME/IP-SD中IPv4端点选项与IPv4 SD端点选项
  • Coze源码分析-工作空间-资源库-前端源码
  • 掌握正则表达式与文本处理:提升 Shell 编程效率的关键技巧
  • FFmpeg 不同编码的压缩命令详解
  • 【扩充位数三位变五位】2022-10-30
  • mysql导出csv中字段里有换行符的处理办法及hive导出处理办法
  • 【php反序列化字符串逃逸】
  • Go 面试题: new 和 make 是什么,差异在哪?
  • ADSL 代理 Proxy API 申请与使用指南
  • NLP技术突破:浅层与深层语义分析全解析
  • test隐藏能力
  • 5-ATSAM3X8-定时器
  • 架构选型:为何用对象存储替代HDFS构建现代数据湖
  • 腾讯混元翻译大模型Hunyuan-MT-7B:重塑跨语言沟通的技术革命
  • 定时器设计之->分级时间轮
  • 基于SpringBoot的二手交易平台【2026最新】
  • 2025我“生发”了『折行』|『内注』|『终端正偿』|『中文负偿』四大“邪术”(前二造福python代码阅读者;后二助力所有艺术人)
  • Kali自带的录屏工具:recordmydesktop
  • 基于单片机电动车充电桩/充电车棚环境监测设计
  • 如何将照片从电脑传输到安卓设备
  • vscode翻译插件
  • Kafka 架构原理
  • 【大模型】大模型微调-RLHF(强化学习)