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

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.dtcms.com/a/362088.html

相关文章:

  • 人工势场法(APF)路径规划 MATLAB
  • 战略进阶——解读92页培训_战略+概述与基本框架麦肯锡【附全文阅读】
  • 一个好的智能体框架应该是什么样子
  • Transformer的并行计算与长序列处理瓶颈总结
  • Solid Explorer文件管理器:功能强大的安卓文件管理器及网盘文件管理器
  • 2025年职场人士专业证书选择与分析
  • 从 “对话” 到 “共创”:生成式 AI 如何重塑内容创作全流程,普通人也能掌握的高效工具指南
  • Windows 安装配置解压版MongoDb
  • ‌ C++ 继承与派生类
  • 从DevOps到BizDevOps:哪些DevOps工具能够成为业务创新加速引擎?
  • Java网络编程基础 Socket通信入门指南
  • 『C++成长记』vector模拟实现
  • Veo Videos Generation API 对接说明
  • 【LLM】使用 LoRA 对 Qwen/Qwen3-Embedding-0.6B 进行微调
  • 基于单片机智能家居环境监测报警系统Proteus仿真(含全部资料)
  • MySQL 性能调优与 SQL 优化的核心利器
  • java中的排序方法
  • 视频监控芯片:智慧安防的“隐形大脑”
  • Product Hunt 每日热榜 | 2025-09-01
  • 10.《基础知识探秘:DHCP地址分配员》
  • 【51单片机三路抢答器定时器1工作1外部中断1】2022-11-24
  • [Windows] 图片裁剪 v1.0 按比例裁剪图片部分另存
  • nginx关于root
  • 【大模型记忆-Mem0详解-3】安装和设置
  • 35.序列(中)
  • 在Linux系统中安装Jenkins(保姆级别)
  • Linux 下 MySQL 数据库定时备份脚本与 Crontab 配置
  • 在本地使用 Docker 创建一个易受攻击的云环境
  • Day23 机器学习流水线(管道/pipeline)
  • Windows系统安装Git详细教程