温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-18 20:54:22 来源:网络 阅读:193 作者:一拳超人007 栏目:系统运维

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 <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:关闭调节模式

谢谢阅读!!!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI