首页 > 系统相关 >shell脚本中的函数与数组

shell脚本中的函数与数组

时间:2023-08-20 16:57:00浏览次数:46  
标签:脚本 shell 函数 数组名 value2 数组 定义

一.函数

编写脚本时,有些脚本可以反复使用,可以调用函数来解决

语句块定义成函数约等于别名

函数使用方法:

  1. 定义函数

  2. 再引用函数

建立函数,基本格式

1.

function 函数名 { 

命令序列

}

2.

函数名(){

命令序列

}

3.

function func_name () {

...函数体...

}

1.注意事项

  1. 直接写 函数中调用函数 直接写函数名

  2. 同名函数 后一个生效

  3. 调用函数一定要先定义

  4. 只要先定义了调用的 其他函数定义顺序无关

 

 

 2.查看函数列表

命令  delcare -F

 3.declare   -f  :查看函数的具体命令

 

4.删除函数:

unset  函数名

5.函数的返回值

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

使用原则:

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

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

 

 如何使返回值能超过255

 

 6.函数变量的作用范围

函数在shell脚本中仅在当前的shell环境中有效

shell脚本中函数的变量默认全局有效

将变量限定在函数内部使用local命令

 

 7.函数递归

函数调用自己本身的函数

 

二、数组

2.1定义数组格式:

  1. 数组名=(value0 value1 value2 value3 ......)

  2. 数组名=([0]=value [1]=value1 [2]=value2 ....)

  3. 列表名="value0 value1 value2 value3 ...... "

    数组名=($列表名)

  4. 数组名[0]="value1"

    数组名[1]="value2"

    数组名[2]="value3"

数组的包括数据类型

  • 数值型

  • 字符型

  • 混合型数值加字符

使用" "或' '定义单引号或双引号括起来

 

 

 

 

 

标签:脚本,shell,函数,数组名,value2,数组,定义
From: https://www.cnblogs.com/lwqpl/p/17636033.html

相关文章

  • C++ Vector数组优化
    Vector数组优化问题这是一段没有优化的代码:#include<iostream>#include<vector>classEntity{public: intx,y;public: Entity(intx,inty) :x(x),y(y){} Entity(constEntity&e) :x(e.x),y(e.y){ std::cout<<"Copied!"<<st......
  • C++ 构造函数与析构函数
    构造函数和析构函数构造函数构造函数会在实例化对象的时候执行,可以在实例化时传入参数。构造函数没有返回值。不需要声明返回值。构造函数的函数名与类名保持一致。//classname:PlayerPlayer(intxa=0,intya=0){//构造函数,传入初始坐标进行初始化......
  • shell脚本之规范与变量
    shell编程规范与变量名词简述面向过程语言按照顺序执行程序第一件事干什么—>第二件事干什么......(C,shell...)面向对象语言把程序看成一个整体(java,python,golang...)三种处理逻辑顺序执行:程序按从上到下顺序执行选择执行:程序执行过程中,根据条件的不同,选择不同分支......
  • 1.8.21二维数组右上左下遍历
    1.题目描述给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。输入输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0<row<100,0<col<100)输......
  • linux shell 条件语句和循环结构
    条件语句和循环结构在Shell脚本中用于控制程序的流程,让你可以根据条件决定执行不同的代码块,或者重复执行某些代码。下面是条件语句和循环结构的一些示例和说明:**条件语句:**1.**if语句**:使用`if`语句根据条件执行不同的代码块。if["$age"-gt18];thenecho"成年"el......
  • linux shell 函数与脚本调试
    **函数:**1.**函数定义**:使用`function`关键字或者直接写函数名来定义函数。functionmy_function(){echo"函数内容"}my_function(){echo"函数内容"}2.**函数调用**:直接使用函数名来调用函数。my_function3.**函数参数**:可以在函数中使用参数来传递值。......
  • 力扣-4-寻找两个正序数组的中位数
    题目要求O(log(m+n))的时间复杂度知道了两个数组的长度,那么中位数的下标以及如何计算是可以确定的,给出的是两个正序数组,如果使用双指针,从两个数组头开始扫描并比较,找出合并后第K小的数字,时间复杂度是多少?时间复杂度是O((M+N)/2),这个目标还不及题目的要求,看到logN就会想到二分......
  • PHP下的webshell免杀
    异或免杀大多数情况下,开发者为了方便自身的需求,会使用"黑名单"的方式扳掉许多敏感函数,来达到一个表面看上去新相对安全的一个目的,但是却不知道因为这种大意的思维会导致整个系统都处于极度危险中;攻击者以往遇见这种情况。完全可以通过加密的方法可以解决大部分的问题(eg:异或加密,ba......
  • shell脚本基础
    基础命令示例#!/bin/bash固定格式echo"inputstr"输出字符串到屏幕read变量名读取键盘输入test$first==$second&&echo"dengyv"||echo"notdeng"判断字符串是否相等echo"filename"$0。脚本名称echo"totalparamnum"$#。参数个数echo......
  • [cuda]RMSNorm核函数解析
    计算原理\(RMSNorm=x*(sqrt(1/n*(x_i)^2+eps))*g\)torch实现classRMSNorm(torch.nn.Module):def__init__(self,dim:int,eps:float=1e-6):super().__init__()self.eps=epsself.weight=nn.Parameter(torch.ones(dim))......