linux bash shell编程之参数变量和流程控制。

时间:2024-08-19 15:32:56

参数变量:用来向脚本中传递参数

  我们在执行脚本的时候可以在其后面加入一些参数,通常来说这些参数与脚本中变量为对应关系。

    start.sh argu1 argu2

      引用方式:

        $1,,2,……${10}${11},……

        在脚本后边给两个文件路径分别对应文件中的$1,$2。并将值传递给$1,$2

          linux bash shell编程之参数变量和流程控制。

      

       轮替:

        shift n:位置参数轮替。不给定个数时能默认为1.

          脚本后给了三个参数,使用shift踢掉两个,所以脚本中最后引用$1实际值为3

        linux bash shell编程之参数变量和流程控制。

特殊变量:

  $0:脚本文件路径本身

  $#:脚本参数的个数

  $*:所有参数

  $@:所有参数

  特殊变量示例

    linux bash shell编程之参数变量和流程控制。

代码执行顺序

顺序执行:从脚本第一行逐条执行至最后一行。

选择执行:

  代码只有一个分支:条件满足是执行

  代码有大于1个分级:只会执行满足条件的一个分支

循环执行:代码被执行N次

  if:单分支、双分支、多分支

     单分支if

      if 测试条件;then

        body

      fi

    双分支if

      if 测试条件;then

        测试条件为真执行的body

      else

        测试条件为假执行的body

      fi

    多分支if

      if 测试条件1;then

        测试条件1为真执行的body

      elif 测试条件2;then

        测试条件2位真执行的body

      ……

      else

        所有条件不满足是执行的body

      fi

    if示例

      添加用户

      linux bash shell编程之参数变量和流程控制。

      比较大小

      linux bash shell编程之参数变量和流程控制。

      奇偶判断

      linux bash shell编程之参数变量和流程控制。

      判断文件类型

      linux bash shell编程之参数变量和流程控制。

      写一个脚本列出可执行的操作,并让用户输入选项,每个选项对应一种操作

      linux bash shell编程之参数变量和流程控制。

      用户类型判断

      linux bash shell编程之参数变量和流程控制。

  

  for:用来遍历列表和控制变量

    列表生成方式:

      直接给出列表

      整数列表

        {start..end}

        seq [start [incremtal]] end

        返回列表的命令 如ls /etc/* 结果也保存在列表中

        等

      示例

      linux bash shell编程之参数变量和流程控制。

    for VAR in LIST;do

      循环体

    done

    for示例:

        求1-100之和

    linux bash shell编程之参数变量和流程控制。

练习题:

linux bash shell编程之参数变量和流程控制。

    第二题

    linux bash shell编程之参数变量和流程控制。

    第一题

    linux bash shell编程之参数变量和流程控制。

    第三题

    linux bash shell编程之参数变量和流程控制。

  while:当循环

    while CONDITION;do

      循环体(包含循环控制变量修正表达式以退出循环)

    done

  until:直到循环

    until CONDITION;do

      循环体(包含循环控制变量修正表达式以退出循环)

    done

  while练习:打印九九乘法表

  linux bash shell编程之参数变量和流程控制。

  case:

    case支持glob风格的通配符

      *:任意长度的任意字符

      ?:任意单个字符

      []:范围内任意单个字符

      a|b:a或b

    case $VAR in

    PAT1)

      分支1

      ;;

    PAT2)

      分支2

      ;;

    ……

    *)

      以上所有条件均不满足是执行分支n

      ;;

    esac

    

    case示例 

    linux bash shell编程之参数变量和流程控制。

    linux bash shell编程之参数变量和流程控制。