• shell脚本8-19


    常见的逻辑关系语句

    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
    

     

  • 相关阅读:
    服务列表
    Tinyfool的2013年总结————在困惑和挣扎中试图前行
    支付平台程序,支付程序,网络pos程序,api接口程序,锋锐支付平台程序开发领导者!
    是新浪移动云
    Convert SVG to PNG in Python
    qrcode 4.0.4 : Python Package Index
    CairoSVG
    cairo graphics.org
    The Apache™ Batik Project
    Online SVG to PNG/JPEG/TIFF conversion
  • 原文地址:https://www.cnblogs.com/cqyyyyy/p/11397900.html
Copyright © 2020-2023  润新知