shell 脚本语法

前端之家收集整理的这篇文章主要介绍了shell 脚本语法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Abstract:
1) "if else" 执行控制;
2)数学逻辑条件比较与字符串比较;

1. " if else " 执行控制
Linux Shell 里面实现 “ if else if else ” 执行控制如下:

  1. if 条件;
  2. then
  3. 执行代码;
  4. elif 条件;
  5. then
  6. 执行代码;
  7. else
  8. 执行代码;
  9. fi
并且使用 "&&" 表示逻辑条件 “与”,使用 "||" 表示逻辑条件 “或”;

2. 条件比较:
2.1 数学逻辑条件比较:
Linux Shell 的数学比较条件必须符合如下格式:

  1. [条件]
前后 方括号与条件之间都必须有空格符,不然会报错!
note:
条件判断出了使用 "&&" "||" 之外,还可以如下表示:

  1. [$var1-ne 0-a$var2-gt2]#"-a"等效于"&&"
  2. [$var-o var2"-o"等效于"||"
2.1.1常用数学逻辑条件比较运算符:

-eq 0]#返回真如果变量为零
  • ]#返回真如果变量不为零

  • gt0]#返回真如果变量大于零
  • lt0]#返回真如果变量小于零
  • -ge 0]#返回真如果变量大于等于零
  • -le 0]#返回真如果变量小于等于零
  • example:
    #!/bin/bash

  • echo-e"\e[42;31m --- \"if else\" follow control ---\e[0m";
  • var1=3;
  • var2=5;
  • if-eq 3]&[$var2-eq 7;
  • then
  • echo"var=3 && var2=7";
  • elif-eq 2|"var1=2";
  • else
  • echo"var1=$var1 ; var2=$var2";
  • fi

  • 2.1.2 常用文件系统的条件判断
    [-f $#判断变量值是否为一个合法的文件路径或文件
  • -x $#判断变量值是否为一个可执行文件
  • -d $#判断变量值是否为一个文件夹路径
  • -e $#判断变量值所指的文件是否存在
  • -c $#判断变量值所指的文件是否为字符设备文件
  • b$#判断变量值所指的文件是否为块设备文件
  • -w $#判断变量值所指的文件是否可写
  • -r $#判断变量值所指的文件是否可读
  • -L $#判断变量值所指的文件是否为一个链接文件
  • example:

    echo"\e[42;31m --- filesystem related attribute test ---\e[0m";
  • fpath="/etc/passwd"
  • if-e $fpath;then
  • echoFileexists;
  • else
  • echo Does not exist


    2.2 字符串条件比较
    Linux Shell 字符串条件比较必须符合如下格式:

    [字符串比较条件前后双 方括号与条件之间都必须有空格符,不然会报错!

    [$str1=$str2#判断字符串是否相等
  • =#判断字符串是否相等
  • #判断字符串是否不相等
  • >$str2#判断str1是否字母序上大于str2
  • <$str2#判断str1是否字母序上小于str2
  • -z $str1#判断str1是否为空字符串
  • -n $str1#判断str1是否不为空字符串
  • 字符串比较同样支持使用 "&&" "||" 的组合进行 多条件联合判断;

    "\e[42;31m --- string comparison ---\e[0m";
  • str1"Not empty "
  • str2""
  • if-z $str2;
  • then
  • echo str1 is non-empty and str2 is empty string.
  • fi


  • 2.3 使用 test 命令进行条件判断可以避免使用方括号:
    test 命令可以替代上面提到的所有方括号表示的条件判断,并且比较的运算符都是兼容的;
    使用 man test 命令自行查看 test 命令的使用详情;
    example:

    "\e[42;31m --- using \"test\" command to substitute using square bracket ---\e[0m";
  • =1;
  • if test $;
  • then
  • echo"True";
  • else
  • echo"False";
  • fi
  • 猜你在找的Bash相关文章