加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell 脚本语法

发布时间:2020-12-15 16:57:52 所属栏目:安全 来源:网络整理
导读:Abstract: 1) "if else" 执行控制; 2)数学逻辑条件比较与字符串比较; 1. " if else " 执行控制 Linux Shell 里面实现 “ if else if else ” 执行控制如下: if 条件 ; then 执行代码 ; elif 条件 ; then 执行代码 ; else 执行代码 ; fi 并且使用 "" 表示
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
  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读