目录
定义函数的语法结构
函数的调用
return返回值
shell脚本调试
~~~~~~~~因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ————玛丽亚·杜埃尼亚斯
为了避免代码的重复编写,一般会通过函数编写代码块的方法,将具有实现某种功能的代码组合成一个函数,那么后面的程序只需要对这个函数进行调用就可以实现相应的功能。
使用函数的好处:可以对程序进行更好的组织;提高程序的可读性和重用性
定义函数的语法结构
[function]函数名(){
命令序列
[return x]
}
[function]是可选的,表示该函数的功能,是可以省略的;
()跟在函数名后,里面是没有内容的;
{}我们所需要执行的命令序列放在这里面;
[return x] 当命令序列执行完后返回给系统一个值,是可以省略的。
函数的调用
在脚本中调用函数的方式是直接输入函数名即可,有时候还需要输入一些参数。
举个栗子
#!/bin/bash
function superman() {
echo "I want to you study hard"
}
count=1
while [ $count -le 5 ]
do
fun1
((count++))
done
superman
注意:函数名必须是唯一的,如果重复定义了有相同名字的函数,则新定义的函数就会覆盖旧的函数
return返回值
shell使用return命令来退出函数并返回特定的退出状态码,如果没有指定返回参数,return在默认情况下会返回上一次命令的状态码。
我们在shell中运行的每一个command或function结束时都会返回父进程的一个值,叫作return value。 我们可以使用$?这个变量来得到最新的一个return value ,也就是刚结束的进程返回值。这个return value 取值范围为0-255,可以自定义设置。
举个栗子
#!/bin/bash
function func(){
read -p "Enter a value: " value
echo " the value is"
return $value ##用return自定义返回值
}
func
echo "The new value is $?"
return value 用来判断进程退出的状态:0为真,非0为假
shell脚本调试
当执行脚本时出现脚本错误后,不要只看那些提示的错误行,而是要观察整个相关的代码段。为避免编写的脚本出错,除了在编写脚本时注意书写规范,排除语法错误,更重要的是利用调试脚本工具来调试脚本。
使用echo命令进行调试
echo命令是最有用的调试脚本工具之一,一般在可能出现问题的脚本中加入echo命令,采用的是分段排查的方式。
使用bash命令参数进行调试
格式:
sh [-nvx] 脚本名
参数含义:
-n 不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果有问题就会报错。
-v 在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出提示。
-x 将执行的脚本内容输出到屏幕上,
当脚本文件较长时,可以使用set命令指定调试一段脚本
举个栗子
bash -n xx.sh 判断语法是否有误
bash -x xx.sh 这个会显示执行成功过的每一行,并显示所有变量的值
bash -v script 执行并显示脚本内容
脚本中加:set -x 用于调试一部分内容
#!/bin/bash
set -x ###开启调试模式###
read -p "请输入您的分数(0-100):" GRADE
if [ $GRADE -ge 85 ]&&[ $GRADE -le 100 ]
then
echo "$GRADE分!优秀"
set +x ###关闭调试模式###
elif [ $GRADE -ge 70 ]&&[ $GRADE -le 84 ]
then
echo "$GRADE分,合格"
else
echo "$GRADE分?不合格"
fi
相关文章:
shell脚本编程循环语句
linux之shell脚本基础
shell脚本编程之case语句
shell编程之条件判断语句