首页 > 系统相关 >Linux结构化命令

Linux结构化命令

时间:2022-10-16 22:02:12浏览次数:49  
标签:语句 ... 结构化 commands else 命令 command Linux 执行

结构化命令

定义

  • 可用于执行流程控制和改变执行顺序与语句

if command 语句(命令退出状态码)

  • if...then

    • if根据command命令返回码来判断是否执行,如果返回码的值为0,就执行then语句后面的代码块
   if command
     then 
      commands
   fi
  • if...then...else...

    • if 根据command命令返回码来判断是否执行,如果返回码的值为0,就执行then语句,否则,执行else后面的代码块
     if command
      then 
       commands
      else 
       commands
     fi
  • if..then...嵌套if...else...

    • if根据command命令返回码来判断是否执行,如果返回码的值为0,就执行then语句后面的代码块,然后再在then后面再判断具体的条件是否成立,如果成立就执行具体操作,否则,执行else后面的代码块
     if command
      then 
        if  conditon
            commands
        fi
      else 
       commands
     fi
  • if...then...elif..then..else

    • if根据command命令返回码来判断是否执行,如果返回码是0,就执行then语句后面的代码块;否则,则判断elif后面的命令,如果条件成立,执行then后面的命令;如果以上都不满足,则执行else后面的代码块
     if command1
       then 
        commands
     elif command2
       then 
        more commands
     fi 

if [ conditon ]语句(=if test conditon语句)

  • condition

    • 字符串比较

      • 字符相等性比较

        =
        !=

      • 字符顺序比较

        str1 \> str2

        str1 \< str2

        • 注意事项

          • >在字符比较中容易当成重定向,需要加转义符

          • 字符比较大小是按照ascii码来比较

          • sort排序是使用系统本地设置的语言排序方法,而此处字符比较则是使用ascii

      • 字符空值判断

        -n(=not empty)
        -z(=empty)

    • 数值比较

     -gt(greater than)
     -lt(less than)
     -eq(equal)
     -ge(greater than)
     -le(less than)
     -ne(not equal
  • 注意事项
    • bash shell文件中,浮点数不能比较
  • 文件比较

    • 是否存在目录

      • -d
    • 是否存在文件

      • -f
    • 是否存在目录或文件

      • -e
    • 是否可读

      • -r
    • 文件是否为非空

      • -s
    • 是否可写

      • -w
    • 是否可执行

      • -x
    • 是否为属主

      • -O
    • 属组是否为默认组

      • -G
    • 是否新于

      • -nt
    • 是否旧于

      • -ot
    • 是否有数据

      • -n

复合条件语句

  • 使用布尔来组合判断

    • 与运算

      [ condition1 ] && [ conditon2 ]

    • 或运算

      [ condition1 ] || [ condition2 ]

if...then高级表达

  • 使用双圆括号来进行数学运算

    if (( expression));then

  • 使用双方括号来进行字符运算

    if [[ expression]];then

    • 注意事项

      • expression中字符匹配支持通配符

case语句

  • 可避免重复使用if语句判断某个变量的值,而是采用列表的形式检查单个变量多个可能值
  • 语法
    case variable in 
    pattern1 | pattern2) commands1;; 
    pattern3) commands2;; 
    *) default commands;; 
    esac 
  • 如果variable的值等于pattern的值,则执行pattern指定的命令
  • 最后的pattern的*号代表其他的情况
  • 命令的开始是case,结束则是单词的倒写esac

注意事项

  • 方括号是与test命令同义的特殊bash命令,即if [conditon] 等同于 if test conditon
  • if [condtion]如果为true,会为if语句产生退出状态码0,如果为false,会为if语句产生非零退出状态码

标签:语句,...,结构化,commands,else,命令,command,Linux,执行
From: https://www.cnblogs.com/tang-learning/p/16797345.html

相关文章

  • linux命令随笔
    用于记录平时遇到的比较有用的命令。Vim命令查找​ vim进入编辑模式之后,如果想在文件中查找某个关键字的话可以用/关键字,随后回车,文件中的关键字会高亮显示,摁n可以调......
  • 达梦数据库常用命令
    文章目录​​以管理员用户登录​​​​用户管理​​​​`创建表空间、用户并授权`​​​​`查看所有用户`​​​​常用​​​​参考文章​​以管理员用户登录su用户管理创建......
  • LiveGBS流媒体服务平台国标GB28181级联上级如何抓包分析windows抓包和Linux抓包
    LiveGBS流媒体服务平台国标GB28181级联上级如何抓包分析windows抓包和Linux抓包​​1、第一步:抓包工具准备​​​​1.1、Linux​​​​1.2、windows​​​​2、第二步:找到级......
  • Linux学习笔记 | Bash基本命令
    (一)历史命令<history>格式:history[选项][历史命令保存文件]选项: -c:   清空历史命令 -w:  把缓存中的历史命令写入历史命令保存文件(~/.bash_history) 历史命令......
  • archlinux + i3wm 使用 tauri 开发者模式 (react + ts) 预览白屏 解决方法
    在我这台机器只需将tauri.conf.json的devPath的localhost改成127.0.0.1即可参考来源https://github.com/tauri-apps/tauri/issues/1140......
  • Linux专项练习
    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是......
  • Linux 下指定端口开放访问权限
    Linux下指定端口开放访问权限作者:Grey原文地址:博客园:Linux下指定端口开放访问权限CSDN:Linux下指定端口开放访问权限环境CentOS系和Debian系的防火墙开放的命令......
  • netstat命令学习
    转自:https://segmentfault.com/a/11900000226864301.介绍netstat是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态......
  • 使用conda/pip命令实现anaconda 虚拟环境的导入导出
    一.使用conda命令实现虚拟环境的导入导出1.从计算机a中导出虚拟环境test的相关信息condaactivatetest #先切换到test虚拟环境condaenvexport>C:\users\sgj\des......
  • Windows不分区VHD装Linux多系统(七):ubuntu 22.04.1安装实验
    一、安装过程:环境:1.物理机系统:Win102. ISO镜像:ubuntu-22.04.1-desktop-amd64.iso3.虚拟机:VirtualBox图形用户界面,版本6.1.36r152435(Qt5.6.2)    安......