Shell函数和数组以及脚本调试

Shell函数

将命令序列按格式写在一起
可方便重复使用命令序列
Shell函数定义
调用函数的方法
函数名 [参数1] [参数2]

实例1

两个数字求和
通过sum(){}定义函数

#!/bin/bash
sum(){
 s=`expr $1 + $2 `
 return $s
}
sum 2 3
echo $?

在这里插入图片描述

#!/bin/bash
sum(){
 s=`expr $1 + $2 `
 echo $s
}
res=`expr $(sum 2 3) \* 2`
echo $?,$res

在这里插入图片描述

自定义函数

#!/bin/bash
#自定义函数
service_index(){
  echo "servicectl <servername> <start|stop|status|reload|restart>"
  return 1
}

service_version(){
  grep "CentOS.*release 7." /etc/centos-release > /dev/null && echo "centos7"
  grep "CentOS.*release 6." /etc/centos-release > /dev/null && echo "centos6"
  grep "CentOS.*release 5." /etc/centos-release > /dev/null && echo "centos5"
}
#调用前面两个函数
servicectl(){
  [[ -z $1 || -z $2 ]] && service_index
  [ $(service_version) = "centos7" ] && systemctl $2 ${1}.service || service $1 $2
}
[root@localhost ~]# source demo02.sh
[root@localhost ~]# servicectl httpd start

shell数组

应用场景包括

获取数组长度
获取元素长度
遍历元素
元素切片
元素替换
元素删除

数组定义方法

方法一

数组名=(value0 value1 value2…)

方法二

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

方法三

列表名=”value0 value1 value2 …”
数组名=($列表名)

方法四

数组名[0]=”value”

数组包括的数据类型

数值类型
字符类型
使用“”或‘’定义

获取数组长度

${数组名[@或/或*]}

读取某下标赋值

${数组名[下标]}

数组遍历

实例1

在数组中自加一输出结果

#!/bin/bash
num=(11 22 33 44 55)
for ((i=0;i<${#num[*]};i++))
do
  let num[i]++
  echo ${num[i]}
done
[root@localhost ~]# source demo03.sh 
12
23
34
45
56

Shell脚本调试

echo命令

bash命令

语法
sh [-nvx] 脚本名

常用选项

-n:不执行脚本,仅检查语法。没有语法问题不显示任何内容,有问题提示报错
-v:执行脚本时,先显示脚本内容,然后执行脚本。存在错误时,给出错误提示
-x:将执行的脚本内容输出到屏幕上

set命令

set -x:开启调节模式
set +x:关闭调节模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值