Linux——Shell编程之函数与数组

【运维】linux shell 编程之函数使用 linux shell 编程关于函数的详细使用 阅读详情

目录

引言

Shell 函数

1、函数的用法

2、函数示例学习

(1)两个数求和

 (2)系统资源监控并报警

3、函数变量的作用范围

4、函数的参数

 5、递归函数

Shell数组

示例.基本使用方法

(1)获取数组长度

(2)读取某下标赋值

(3)数组遍历

(4)数组切片

(5)数组替换

 

(6)数组删除

Shell脚本调试

 闲谈


引言

    时隔多日,我再一次以“人”的身份,继续编写自己的帖子。为什么?因为我成为了“俄罗斯轮盘赌”的“赌徒”,然而不幸中的万幸...抢救回来了!所以,为了让自己的思维逻辑逐步清晰,我又要开始长篇大论,误人子弟!

    主要还有一个重要原因:阿里云打电话询问我的未来打算。唉...别说,我原本都没什么打算。一切都是冲动?好像就是冲动... ...这也是我为什么去打台球的原因——磨练心性。确实是个机遇,老师点醒了我,客服提醒了我。一切都是恰到好处... ...或许...真的要考虑一下未来的打算了。

    就这样吧...随缘?或许吧。

Shell 函数

    没错,今天将由我本人操手编写大部分内容!我会尽可能的为大家清晰的讲解知识与相关命令步骤的。如果你对于这些完全是零基础的话,这些可能可以帮助到您。(如果你真的是第一次接触IT知识...或许这个专栏能帮你初步了解。)-----→基本编程&条件语句&循环语句。

1、函数的用法

    在Shell脚本执行的过程中,函数被置于内存中,每次调用函数无需从硬盘读取,故运行速度较快。然而函数并非是必须的元素,但函数可以对程序进行更好的组织。它可以令相对独立的代码变成函数,可以提高程序可读性与重用性,避免编写大量重复代码。定义方法如下:

[function] 函数名(){
    命令序列
[return x]
}
  •  “function”:关键字表示定义一个函数,可以省略;
  • “{”符号:表示函数执行命令的入口,该符号可以与函数名同行也可以在函数名在下一行的句首;
  • “}”符号:表示函数体结束,两个大括号之间{    }是函数体;
  • “命令序列”:可以是任意shell命令(基本编程),也可以调用其他函数;
  • “return”:表示退出函数返回一个退出值,通过返回值判定执行是否成功,也可以使用exit终止整个Shell脚本。

扩展:如果while语句陷入无限循环,可以使用break语句直接暂停语句循环,也可使用continue语句直接跳到下一个函数进行循环。

2、函数示例学习

(1)两个数求和

    使用Shell脚本实现两个数相加求和,我们可以定义函数的方式来完成。sum函数内部通过read命令接收用户分别输入的两个数,然后做加法运算,最后通过调用函数的方式来输入两个数的和。命令如下:

[root@localhost ~]#vim sum.sh
#!/bin/bash    //定义操作环境

#定义sum函数
sum() {
    echo "请输入第一个数:"
    read num1
    #检查输入是否为有效的数字
    if ! [[ $num1 =~ ^[0-9]+$ ]];
    then
        echo "输入的第一个数不是有效的整数,请重新运行脚本并输入正确的数字。"
    return 1
    fi

    echo "请输入第二个数:"
    read num2
    # 检查输入是否为有效的数字
    if ! [[ $num2 =~[0-9]+$ ]];
    then
        echo"输入的第二个数不是有效的整数,请重新运行脚本并输入正确的数字。"
    return 1
    fi
    #计算两数之和
    result=$((num1 + num2))
    #输出结果
    echo "两数之和为:$result"
}

#调用sum函数
sum
[root@localhost ~]#chmod +x sum.sh
[root@localhost ~]#./sum.sh
请输入第一个数:4786
请输入第二个数:1439
“你输入的两个数为:4786 和 1439.”
“两个数的和为:6225”
 (2)系统资源监控并报警

    该函数会定期监控系统的CPU和内存使用率,当使用率超过设定的阈值时,就会发送报警信息提醒,这里将简单模拟实验环境,实际的应用中还会扩展为发送邮件、短信等。命令如下:

[root@localhost ~]#vim CPU&MEM_jiankong.sh
#!/bin/bash    //指定系统环境
#发送报警信息的函数
send_alert() {
    local message=$1
    echo "ALERT:$message"
    #这里可以添加发送邮件、短信等报警逻辑
}
#系统资源监控函数
monitor_system_resources() {
    local cpu_threshold=$1
    local men_threshold=$2
    local interval=$3

while true; do
    #获取CPU使用率
    cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
    #获取内存使用率
    mem_usage=$(free | awk `/Mem/ {printf("%.2f",$3/$2 * 100)}`)

    if (( $(echo "$cpu_usage > $cpu_threshold" | bc -l) ));
    then
        send_alert "CPU usage ($cpu_usage%)."
    fi

    if (( $(echo "$mem_usage > $mem_threshold" | bc -l) ));
    then
        send_alert "Memory usage ($mem_usage%)."
    fi
 done
}

#调用函数
monitor_system_resources 5 1 5
  • 参数说明:函数接收三个参数,分别是CPU使用率阈值、内存使用率阈值以及监控间隔时间(秒)。
  • 循环监控:使用 while true循环不断监控系统资源。通过top和free命令获取CPU和内存使用率,使用bc命令进行浮点数比较。
  • 报警处理:当使用率超过阈值时,调用send_alert函数发送报警信息。 

3、函数变量的作用范围

    再编写运行脚本时,有时需要将变量的值限定在函数内部,可以通过内置命令 local来实现。函数内部的变量的使用,可以避免函数内外同时出现同名变量对脚本的结果影响。命令如下:

[root@localhost ~]#vim lemon_scope.sh
mylemon ()
{
    local i
    i=10
    echo $i
}
i=20
mylemon
echo $i

[root@localhost ~]#chmod +x lemon_scope.sh
[root@localhost ~]#./lemon_scope.sh
10
20

    上述脚本里,函数内部通过local命令设置变量 i ,其作用就是将变量 i 限定在函数内部。故内部变量与全局变量互不影响。

4、函数的参数

    用法如下:

函数名称 参数1 参数2 参数3        ... ...

    在使用函数时,函数名称在前参数之后,彼此之间用空格分隔。示例如下:

[root@localhost ~]#vim write_log.sh
#!/bin/bash
mydir="/data" outfile="{mydir}/my.log"
[ -e "${mydir}" ] || mkdir -p ${mydir}
appendfile()
{
echo "$2" >> "$1"
}
appendfile ${outfile} "first line content."
appendfile ${outfiel} "second line content."
[root@localhost ~]#chmod +x write_log.sh
[root@localhost ~]#./write_log.sh
[root@localhost ~]#cat /data/my.log
first line content. second line content.

    上述脚本接收两个参数,第一个参数是写日志的目标文件,第二个参数是日志信息,整个脚本实现将日志信息写入目标文件内的目的。 

 5、递归函数

    其实Shell本身也可以实现递归函数,就是可以调用自己本身的函数。在Linux上编写Shell脚本的时候,经常需要递归遍历系统的目录,列出目录下的文件和目录,逐层递归列出,并对这些层级关系进行展示。命令如下:

[root@localhost ~]#vim fun_recursion.sh
#!/bin/bash
#定义递归遍历目录的函数、
    traverse_directory() {
        local dir=$1
    #遍历当前目录下的所有文件和文件夹
        for item in "$dir"/*;do
    if [ -d "$item" ];
        then
    #如果是目录,递归调用函数继续遍历
            ehco "Directory: $item"
            traverse_directory "$item"
    elif    [ -f "$item" ];
        then
    #如果是文件,输出文件路径
            echo “File: $item”
    fi
 done
}

#调用函数,从当前目录开始遍历
traverse_directory "."
[root@localhost ~]#chmod +x fun_recursion.sh
[root@localhost ~]#./fun_recursion.sh
函数 list_files的第一个参数是列举的目录名,第二个参数是调整的空间。

Shell数组

    在Shell脚本中,数组是一种常见的数据结构,主要的应用场景包括:获取数据长度、获取元素长度、遍历元素、元素删除等等。常用的定义方法包括以下几种。

  1. 数组名=(value0 value1 value2 ...)
  2. 数组名=([0]=value [1]=value [2]=value ...)
  3. 列表名="value0 value1 value2 ..." 数组名=($列表名)

...

示例.基本使用方法

(1)获取数组长度
[root@localhost ~]#arr_number=(1 2 3 4 5)
[root@localhost ~]#arr_length=${#arr_number[*]}
[root@localhost ~]#echo $arr_length
5
[root@localhost ~]#arr_length_1=${#arr_number[@]}
[root@localhost ~]#echo $arr_length_1
5
(2)读取某下标赋值
[root@localhost ~]#arr_index2=${arr_numnber[2]}
//第三个元素
[root@localhost ~]#echo $arr_index2
3
(3)数组遍历
[root@localhost ~]#vim array_traverse.sh
#!/bin/bash
arr_number=(1 2 3 4 5)
for v in ${arr_number[@]}
do
    echo $v
done
[root@localhost ~]#chomd +x array_traverse.sh
[root@localhost ~]#./array_traverse.sh
1
2
3
4
5
(4)数组切片
[root@localhost ~]#arr=(1 2 3 4 5)
[root@localhost ~]#echo ${arr[@]}
1 2 3 4 5
[root@localhost ~]#echo ${arr[@]:0:2}    //${数组名[@或*]:起始位置:长度}
1 2
[root@localhost ~]#echo ${arr[@]:2:3}
3 4 5

ps:将数组切片后,返回的是字符串,以空格作为分隔符
(5)数组替换
[root@localhost ~]#arr=(1 2 3 4 5)
[root@localhost ~]#echo ${arr[@]/4/66}    //${数组名[@或*]/查找字符/替换字符}
1 2 3 66 5
[root@localhost ~]#echo ${arr[@]}    //并不会替换数组原有内容
1 2 3 4 5
[root@localhost ~]#arr=(${arr[@]/4/66})    //要实现改变原有数组,可通过重新赋值实现
[root@localhost ~]#echo ${arr[@]}
1 2 3 66 5
 
(6)数组删除
[root@localhost ~]#arr=(1 2 3 4 5)
[root@localhost ~]#unset arr    //删除数组
[root@localhost ~]#echo ${arr[*]}
[root@localhost ~]#arr=(1 2 3 4 5)
[root@localhost ~]#unset arr[2]    //删除第三个元素
[root@localhost ~]#echo ${arr[*]}
1 2 4 5 

Shell脚本调试

    在shell脚本开发中,经常会碰到各种各样的问题,例如忘记末尾处“fi”结束,又或是使用中文格式的符号进行编写。

    所以为了避免自己编写的脚本出错,除了在编写脚本时注意书写规范,排除语法错误,更重要的是利用调试脚本工具来调试脚本。echo命令是最有用的调试脚本工具之一,一般在可能出现问题的脚本中加入echo命令,采用的是分段排查的方式。

    其实除了echo命令之外,bash Shell也有相应参数可以调试脚本。使用bash命令参数调试,命令的语法为:

sh [-nvx] 脚本名
  • -n:不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果有问题会提示报错。
  • -v:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出错误提示。
  • -x:将执行的脚本内容输出到屏幕上,这个是对调试很有用的参数。 

示例如下:

[root@localhost ~]#vim BashShell.sh
#!/bin/bash
set -x     //开启调试模式
read -p "请输入您的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]
    then
        echo "$GRADE 分!我丢,你好优秀" set +x //关闭调试模式
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]
    then
        echo "$GRADE 分,一般般,及格"
    else
        echo “$GRADE 分?算了吧,洗洗睡吧。”
fi

 闲谈

    未来干些什么呢... ...不知道,也是时候去认真的想想了。

如何用Lmcache+vllm优化KVcache存储?CPU与SSD性能实测对比 本文通过实测对比,详细介绍了如何利用Lmcache+vLLM将大模型推理中的KV Cache卸载至CPU内存或SSD硬盘,以解决长上下文场景下的GPU显存瓶颈。测试数据显示,CPU卸载方案在首字延迟(TTFT)上显著优于SSD方案,但SSD方案在存储成本上更具优势。文章提供了完整的配置指南、性能数据分析和生产环境选型建议。 阅读详情

相关推荐

SDK报错(1)undefined reference to `f_mount‘

按文中说法是ff.c文件中用了一个if语句来判断是否启用ff.h头文件,但是却没有地方进行宏定义来满足这个if条件。利用SDK读取sd卡时,添加了xilffs库,而且包含了ff.h头文件,还是对fat库的函数报错。网上有的说在ARM v7 gcc linker中添加xilffs的方法可以解决,但我试了没有用。如下图,我们可以在ff.c中自己添加一个宏定义来实现这个条件。最后在赛灵思论坛找到了一个解决方法,原文连接如下。这时候保存编译之后,报错就消失了。ff.c 文件在bsp工程下。

EfunStudy的博客 1481

【Linux】shell编程—数组

shell编程—数组

h15162064289的博客 2961

MySQL安装最后启动报错--Job for mysqld.service failed because the control process exited with error code. See

MySQL安装最后启动报错: [root@localhost mysql]# systemctl start mysqld Warning: mysqld.service changed on disk. Run 'systemctl daemon-reload' to reload units. Job for mysqld.service failed because the control process exited with error code. See "systemctl status m

chenchen的博客 2746

Linux shell数组

数组的定义格式: 数组名=(值1,值2 .....值n) 例子:array_name=(v0,v1,v2,v3) 这样就创建了一个包含字符串的数组 数组单个元素的修改 我们还可以单独操纵数组中的元素如: array_name[0]=value1,这样就可以已经创建的数组的第一个元素修改为value1 数组元素的读取 xxx=${array_name[0]} :这样数组中的第一个元素将会赋值给xxx echo ${array_name[@]} :这样会将数组中的所有元素进行输出 .

qq_47529104的博客 1723

lvgl 实现表格table,并且固定表头

嵌入式实现table,lvgl 实现原生表格table组件

m0_61704502的博客 1271

GEOS-Chem笔记——模式下载安装+驱动数据+运行流程

看过我博客的会发现我写了很多CESM的笔记,但是说实话,平时科研我其实更多时候是GEOS-Chemuser。之所以写了很多CESM笔记,其实是因为不会,就边学边写。然后GEOS-Chem已经用比较熟了,所以也没想过做笔记啥的。但是我发现越来越多朋友私信我各种CESM问题,我觉得我可能给大家营造了一种我是CESM达人的错觉。感觉自己有点跑偏了呢。公平起见,我觉得我有必要补充点GEOS-Chem笔记。 GEOS-Chem是研究大气化学的人常用的大气化学传输模式,在全世界范围的大气化学研究组中被广泛使用。不过.

砍柴姑娘Jourosy的博客 1万+

Linux之shell中的 数组

文章目录shell中的 数组1.数组的定义2.数组的定义2.1用小括号将变量值括起来赋值给数组变量2.2采用键值对的形式赋值2.3通过分别定义数组变量的方法来定义2.4动态地定义数组变量3.数组的打印4.数组元素添加5.数组元素的删除6..数组的赋值7.数组内容的截取和替换7.1 截取7.2数组元素的替换8.统计数组元素的个数9.栗子 shell中的 数组 1.数组的定义 在shell的数组...

weixin_43936969的博客 1180

自定义css属性实现渐变边框动画

自定义cs属性实现渐变边框动画

lemon的博客 1875

Linux | shell脚本之数组

目录 [隐藏] 创建数组 读取数组 读取单个元素 读取所有成员 默认位置 数组的长度 提取数组序号 提取数组成员 追加数组成员 删除数组 关联数组 1.创建数组 数组可以采用逐个赋值的方法创建。 ARRAY[INDEX]=value 上面语法中,ARRAY是数组的名字,可以是任意合法的变量名。INDEX是一个大于或等于零的整数,也可以是算术表达式。注意数组第一个元素的下标是0, 而不是1。 下面创建一个三个成员的数组。 $ array[0]=val $ arra

m0_59388634的博客 4954

Redhawk:如何gds2def?

使用redhawk gds2def功能 这其中gds_layer.map的书写方式如下: m代表metal,v代表via。 ICC/ICC2用户可以从tech file中获取layer number。 innovus用户可以从stream out layer map中获取layer number。 最后运行gds2def -m gds2def.config即可。 ...

m0_61544122的博客 5342

基于STM32、HAL库的SC16IS752IPW总线转UART驱动程序设计

/ FIFO空间不足。// 设置LCR寄存器的DLAB位为1以访问DLL/DLH。// 设置LCR寄存器,先访问DLL/DLH。// 设置LCR寄存器(不包含DLAB位)

corlin6688的博客 817

Linux Shell编程之函数与数组

【代码】Linux Shell编程之函数与数组。

2501_91557222的博客 1230

基于YOLOv8的视频监控违规停车智能识别系统与应用研究

通过这个毕设,你已经从数据准备、模型训练到界面开发,完整走了一遍深度学习项目的流程。把多个停车场的监控数据整合起来,做一个区域级的停车管理平台;加入车牌识别功能,直接定位到违规车辆的车主;试试把YOLO模型再优化一下,让它在手机端也能运行,实现移动巡检。相信我,按照这个教程一步步做,你的毕设不仅能顺利完成,还能做出亮点,让答辩老师眼前一亮。要是过程中遇到什么问题,随时可以再琢磨琢磨,或者找我聊聊,咱们一起把这个毕设做成精品。

LXY_LOVE36的博客 118

linux Shell编程之函数与数组(四)

函数,则是 shell 脚本中组织代码、提高复用性的关键所在。通过将一系列指令封装成函数,我们可以避免编写大量重复代码,使脚本更在 shell 脚本的编写过程中,调试与测试同样不可忽视。合理的调试策略与工具,如 echo 命令和 bash 的调试参数,能够帮助我们快速定位并解决问题,确保脚本的稳健运行。加简洁、清晰。函数的定义与调用简洁明了循环语句与函数是 shell 编程中的两大核心要素。它们不仅能够简化脚本的编写过程,还能提升脚本的执行效率和可维护性。

2501_91344113的博客 1214

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Linux系统入门第十一章 --Shell编程之函数与数组

数组元素的大小与限制,也不需要事先定义。在Bash脚本里,也可以进行数组切片操作,语法是${array[@]:start:length},其中start是开始的索引,length是要提取的元素个数。数组:作为Shell脚本中的一种重要数据结构,数组支持存储多个值,并提供了丰富的操作方法,如获取数组长度、读取和赋值、遍历、切片、替换和删除元素等。在 Shell 编程里,数组遍历指的是按顺序访问数组中的每一个元素,并对这些元素执行特定操作的过程,这在处理一组相关数据时非常有用,比如批量处理文件、统计数据等。

2301_81259717的博客 1195

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux Shell 编程:函数与数组详解

Shell函数定义有简洁式和完整式两种,核心语法一致,可根据习惯选择,function关键字可省略,函数体必须用{}包裹,且命令序列末尾建议加;或换行分隔。# 方式1:省略function(推荐,更简洁)函数名() {命令序列[return 退出值]# 方式2:带function关键字function 函数名() {命令序列[return 退出值]return:用于退出函数并返回一个0-255的整数退出值,0表示执行成功,非0表示失败;若省略,函数将以最后一条命令的执行结果作为返回值。

2501_92765253的博客 592

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux Shell编程及自动化运维实现之数组和函数

一、数组 简介: 1、数组简介 变量:用一个固定的字符串表示一个不固定的字符串。 数组:用一个固定的字符串,表示多个不固定字符串。 2、类型 普通数组:只能使用整数作为数组索引。 关联数组:可以使用字符串作为数组索引。 3、图示 总结: 变量切片有个索引的概念。一个索引(整数)对应一个字符。 普通数组:中的索引对应一个字符串。 关联数组:数组中的索引可以使用字符串。 普通数组: 1、定义数组 方法一: 一次赋一个值 数组名[下标]=变量值 array1[0]=p..

yiweii的博客 495

Linux系统Shell编程及自动化运维实现-数组和函数

Linux系统Shell编程及自动化运维实现-数组和函数一.数组1.数组简介2.类型3.普通数组3.1定义数组3.2访问数组元素4.关联数组4.1定义关联数组4.2访问数组元素5.数组和循环6.案例二.函数1.概述2.定义函数3.调用函数4.示例三.影响shell程序的内置命令 一.数组 1.数组简介 变量:用一个固定的字符串,代替一个不固定字符串。 数组:用一个固定的字符串,代替多个不固定的字符串。 2.类型 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 图示: 总结:

俗人的博客 718

linux系统——shell编程之数组和函数

linux系统——shell编程之数组和函数 - 数组: 简介: 变量:用一个固定的字符串,代替一个不固定字符串。 数组:用一个固定的字符串,代替多个不固定字符串。 类型: 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 总结: 变量切片有个索引的概念。一个索引(整数)对应一个字符。 普通数组:中的索引对应一个字符串。 关联数组:数组中的索引可以使用字符串。 - 普通数组: 定义数组: 方法一: 方法一: 一次赋一个值 数组名[下标]=变量值 array1[0]=

qq_46424955的博客 374

Linux Shell编程及自动化运维实现——数组和函数

Linux Shell编程及自动化运维实现 第4章 数组和函数 一、数组 简介 变量:用一个固定的字符串,代替一个不固定字符串。 数组:用一个固定的字符串,代替多个不固定字符串。 类型 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 1、普通数组 1、定义普通数组 方法一: # array2=(tom jack alice) # array3=(`cat /etc/passwd`) 希望是将该文件中的每一个行作为一个元数赋值给数组array3 # array4=(`ls /v

qq_45939993的博客 233

linux之基础shell脚本编程3 函数和数组

shell有关函数数组使用

第九系艾文 742

Linux之Shell编程(四)函数、数组、正则

定义方式:有两种定义形式,一是function 函数名(),二是直接函数名(),函数体用{}包裹,可加return int返回值(不加则以最后一条命令结果为返回值)。使用前提:Shell 中函数需先定义后使用,需放在脚本开始部分,调用时仅用函数名即可。定义方式:Bash Shell 仅支持一维数组,初始化无需指定大小。一种是,元素用空格分隔;另一种是array_name[索引]=元素值,索引从 0 开始。示例或。定义。

2501_93012470的博客 1281

函数、数组与 grep + 正则表达式的 Linux Shell 编程进阶指南

根据你提供的内容,我整理了一份关于Shell脚本中函数、数组和正则表达式的简明参考:函数调用:参数传递:返回值处理:数组定义: 数组元素读取: 数组遍历: grep常用选项:常用元字符:

zjl999666999的博客 1006

linux系统shell编程-数组和函数

一.数组 1.数组简介 变量:用一个固定的字符串,代替一个不固定字符串。 数组:用一个固定的字符串,代替多个不固定的字符串。 2.类型 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 图示: 总结:变量切片有个索引的概念。一个索引(整数)对应一个字符。 普通数组:数组中的索引对应一个字符串。 关联数组:数组中的索引可以使用字符串。 3.普通数组 3.1定义数组 方法一:一次赋一个值 数组名[下标]=变量值 [root@localhost ~]# array1[0]=aaa [ro

qq397039762的博客 555

Linux ---- Shell编程之函数与数组

函数定义完之后并不会自动执行,需要调用才行 好处在于可以写一段功能代码作为函数,有需要就直接调用定义的时候哪怕出现语法错误也没关系,不调用就不会报错 当然我们写函数最终目的还是为了调用,为了实现某个功能块。 举例: 最简单的例子 如果在其他文件中调用这个文件添加颜色 3、删除函数 调换位置 使用原则: 调用自己本身的函数可以写病毒 for炸弹 执行bomb以后会死机,除非重启,在没有其他办法。 将全班学生定义成一个变量,无法使

AH99999的博客 1647

Linux Shell编程 第4章 数组和函数

数组 简介数组 变量:用一个固定的字符串,代替一个不固定字符串。 数组:用一个固定的字符串,代替多个不固定字符串。 类型 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 终极图示 总结 变量切片有个索引的概念。一个索引(整数)对应一个字符。 普通数组:中的索引对应一个字符串。 关联数组:数组中的索引可以使用字符串。 一、普通数组 定义数组: 方法一: 一次赋一个值 数组名[下标]=变量值# array1[0]=pear # array1[1]=apple

weixin_49453051的博客 355
上一篇: Linux——Shell编程之循环语句(笔记)
下一篇: Linux——Shell编程之正则表达式与文本处理器(笔记)
霖檬ing
博客等级 码龄2年 701粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值