常见的逻辑关系语句
1、for语句:
for 变量 in 列表;do
循环体
done
for((初始语句; 判断语句; 值变化语句)); do
循环体
done
case语句:
2、case 变量 in
PAT1)
执行语句
;;
PAT2)
执行语句
;;
*)
默认执行语句
;;
esac
3、while语句:
定义初始值
while 条件判断 ; do
循环体
值变化语句
done
4、until语句:与while语句用法相同,但是只有判断条件为False的时候,才会进入循环语句
5、if语句:
if 条件判断 ;then
执行语句
fi
if 条件判断 ;then
执行语句1
else
执行语句2
fi
if 条件判断; then
执行语句1
elif 条件判断 ; then
执行语句2
elif 条件判断 ; then
执行语句3
else
执行语句4
fi
函数
1、函数介绍:为了避免代码重复使用,我们一般通过函数编写代码块,而这一代码块用来实现某种功能,且这个功能在后面的代码中,会重复调用。
2、函数的语法格式:
1、function fun_name(){
函数体
}
fun_name
【调用函数,不调用函数则函数体中的命令将不会执行,在哪里调用,函数体中的命令就在哪里执行】
3、函数的调用------return返回值
(1)当函数中指定了判断语句的时候,我们默认要返回一个错误的结果,但是最近一条命令确实正确的,这时候,我们需要通过return返回一个我们需要的错误状态码;
(2)函数结束的时候,我们需要指定一个return的正确返回码;
如果使用在循环语句中,return会跳出循环;
4、函数接收参数:函数+变量,和普通命令一样。只要注意在函数接收参数的时候不会使用外部的传参,而是以脚本内部的参数为准。
5、函数中的变量:全局变量
局部变量:脚本内部的变量
本地变量:local 变量名=xxx 本地变量只在本函数内部生效
环境变量:在整个Linux系统中的bash中生效
6、关于脚本执行的问题:
(1)bash 的方式来执行 -- #!/bin/bash
bash所执行的脚本中定义的变量,在当前shell的子shell中;
(2)全路径或者相对路径的方式来执行; -- 须有授权执行权限;
(source 脚本文件 或者 . 脚本文件)
source这种方式来执行脚本的时候,内部变量所定义的值是在当前shell中的;
7、函数递归:n的阶乘,调用自己本身,一直循环。
练习:求阶乘
#!/bin/bash
# Author: cqy
# Blog: https://www.cnblogs.com/cqyyyyy/
# Time: 2019-07-28 22:28:15
# Name: 阶乘.sh
# Version: v1.0
# Description: This is a Script.
fac(){
if [ $1 -lt 1 ];then
echo " 1"
else
echo $[$1*$(fac $[$1-1])]
fi
}
fac 5