Shell编程——函数数组以及脚本调试(4)
admin
2023-03-06 10:22:30
0

Shell函数

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

Shell函数定义

调用函数的方法
 函数名 [参数1] [参数2]

实例1

两个数字求和
通过sum(){}定义函数
#!/bin/bash
sum(){
 s=`expr $1 + $2 `
 return $s
}
sum 2 3
echo $?

Shell编程——函数数组以及脚本调试(4)

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

Shell编程——函数数组以及脚本调试(4)

自定义函数

#!/bin/bash
#自定义函数
service_index(){
  echo "servicectl  "
  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:关闭调节模式

谢谢阅读!!!

相关内容

热门资讯

首届“泉城杯”国际人形机器人全... 济南广电·天下泉城客户端5月8日讯一场跨越国界的智能体育盛宴即将燃爆泉城。2026年首届“泉城杯”国...
切尔诺贝利核禁区发生大火,过火... 新华社基辅5月8日电(记者李东旭)乌克兰国家紧急情况局8日说,切尔诺贝利核禁区发生大火,并受大风天气...
伊朗大使:不接受任何军事威胁下... 据凤凰卫视报道,5月8日,伊朗驻华大使馆召开记者会,大使法兹里在回应近期海湾局势时表示,伊朗日前向美...
国民党痛批赖清德:把司法当东厂... 据凤凰卫视报道,国民党和民众党联手否决了赖清德提名的检察机构负责人选,但赖清德并未重新提名新人选,而...
男子给婚外情对象转账22万余元... 男子谭某和妻子梁某在1991年结婚,婚后育有两女。2020年时,谭某结识女子贺某后,二人发生婚外情关...
钧正平:为什么说东京审判还没有... 今年是东京审判开庭80周年,我们在此回顾三个故事。东京审判现场。被偷走的骨灰1948年12月23日午...
国乒男团3比0韩国,晋级世乒赛... 北京时间5月8日,2026伦敦世乒赛男团1/4决赛,国乒男团以总比分3比0战胜韩国队,晋级半决赛。本...
美国公布首批UFO相关政府文件... 美国国防部5月8日公布了首批“与外星人、地外生命、不明空中现象(UAP)以及不明飞行物(UFO)相关...
外交部:日本军国主义侵略罪行罄... 在东京审判开庭80周年之际,《远东国际军事法庭庭审记录·全译本》日前在中国首发。外交部发言人林剑5月...
“一顿海鲜餐被收1800元”游... 5月4日晚,一湖南游客在海南三亚海棠区椰某韵餐饮店吃海鲜餐时,两份海鲜菜品及酒水饮料等被收了1800...