常见的逻辑关系语句

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的阶乘,调用自己本身,一直循环。

练习:求阶乘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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
原文地址:https://www.cnblogs.com/Eucalyptusleaves/p/11421888.html