shell脚本函数及数组

目录

一、函数

1、函数的优点:

2、如何定义函数(shell)

3、演示函数的作用以及增删改查

关于函数的使用

 ​编辑

4、创建函数库

二、shell数组

2、数组包括的数据类型

获取数组的所有信息 

读取下标的标号有哪些

数组切片

给某个数组原有的值重新赋值 

删除数组

三、总结


一、函数

1、函数的优点:

函数可以理解为脚本的别名,使用函数可以避免代码错误,增强可读性,简化脚本;函数可以将大的工程来分割为若干小的功能模块,代码的可读性更强;

  • 将命令序列按格式写在一起
  • 可方便重复使用命令序列

2、如何定义函数(shell)

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

##第二种:
function 函数名{
脚本内容(命令集合)
}

函数返回值:

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

  1. 函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
  2. 退出状态码必须是0~255,超出时值将为除以256取余

function db1 {
  read -p "请输入:" value
  return $[$value * 2]
}
db1
echo $?
 
db1() {
  read -p "请输入:" value
  echo $[$value * 2]
}
result=`db1`
echo $result

3、演示函数的作用以及增删改查

关于函数的使用

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

 

4、创建函数库

vim myfuncs.sh
jiafa() {
  echo $[$1 + $2]
}
 
chengfa() {
  echo $[$1 * $2]
}
 
chufa() {
  if [ $2 -ne 0 ];then
    echo $[$1 / $2]
  else
    echo "$2不能为0"
  fi
}
 
 
vim test.sh
. myfuncs.sh
 
value1=10
value2=5
result1=`jiafa $value1 $value2`
result2=`chengfa $value1 $value2`
result3=`chufa $value1 $value2`
echo "加法结果为:$result1"
echo "乘法结果为:$result2"
echo "除法结果为:$result3"

二、shell数组

1、数组定义方法

方法一:总体赋值

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

方法二:

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

方法三:

列表名="value0 value1 value2 ..."
数组名=($列表名)

方法四:单个赋值

数组名[0]="value"
数组名[1]="value"
数组名[2]="value"

2、数组包括的数据类型

获取数组长度

arr_number=(1 2 3 4 5)
arr_length=${#arr_number[*]}
           ${#arr_number[@]}
           
echo $arr_length
获取数组的所有信息 
##获取数组的所有信息
[root@host1 /data]#echo ${a[*]}   ##echo ${数组名[*]}
a b c d e f g
[root@host1 /data]#echo ${a[@]}   ##echo ${数组名[@]}
a b c d e f g
读取下标的标号有哪些
##读取下标的标号有哪些
[root@host1 /data]#echo ${!a[*]}   ##echo ${!数组名[*]}
0 1 2 3 4 5 6
数组切片
##数组切片
[root@host1 /data]#echo ${a[@]:2}  ##echo ${数组名[@]:n:m}表示跳过前n个,只看m个,如果没有m则是后面所有
c d e f g
[root@host1 /data]#echo ${a[@]:2:2} ##跳过前2个,看后面2个
c d
[root@host1 /data]#echo ${a[@]:2:3} ##跳过前2个,看后面3个
c d e
[root@host1 /data]#echo ${a[@]}  ##对比查看学习
a b c d e f g
给某个数组原有的值重新赋值 
##给某个数组原有的值重新赋值
数组名[标号]=新的值  
删除数组
##删除数组
unset  数组名称

三、总结

  • 根据已知的列表对象重复执行命令序列,更适合无规律的循环操作。
  • while语句可根据特定的条件重复执行命令序列,更适合有规律的循环操作。
  • until语句重复测
  • Shell函数的调用 使用方法
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值