• 9 shell 退出状态


    • 退出状态和逻辑运算符的组合
      • Shell 逻辑运算符
      • 举栗

    命令的退出状态(exit statu)是指执行完Linux命令或shell函数后,该命令或函数返回给调用它的程序的一个比较小的整数值。if 语句的判断条件,从本质上讲,判断的就是命令的退出状态。

    按照惯例来说,退出状态为 0 表示“成功”;也就是说,程序执行完成并且没有遇到任何问题。除 0 以外的其它任何退出状态都为“失败”。但也会有例外,比如 diff 命令用来比较两个文件的不同,对于“没有差别”的文件返回 0,对于“找到差别”的文件返回 1,对无效文件名返回 2。而在其他编程语言(C、Python等)中,0 表示“假”,其它值表示“真”。

    最常用与获取命令退出状态的方式是$?

    退出状态和逻辑运算符的组合

    Shell if 语句允许使用逻辑运算符将多个退出状态组合起来,这样可以一次判断多个条件了。

    Shell 逻辑运算符

    运算符
    使用格式
    说明

    &&

    逻辑与

    expression1 && expression2

    当 expression1 和 expression2 同时成立时,整个表达式才成立。

    如果检测到 expression1 的退出状态为 1,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是不成立的,检测了也是多此一举。

    ||
    逻辑或

    expression1 || expression2 expression1 和 expression2 两个表达式中只要有一个成立,整个表达式就成立。

    如果检测到 expression1 的退出状态为 0,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是成立的,检测了也是多此一举。
    ! 逻辑非 !expression

    相当于“取反”的效果。如果 expression 成立,那么整个表达式就不成立;

    如果 expression 不成立,那么整个表达式就成立。

    举栗

    作用
    脚本
    结果
    知识点
    将用户输入的 URL 写入到文件中
    1. #!/bin/bash
    2. read filename
    3. read url
    4. if test -w $filename && test -n $url
    5. then
    6. echo $url $filename
    7. echo "写入成功"
    8. else
    9. echo "写入失败"
    10. fi
    运行结果为:
    urls.txt↙
    http://c.biancheng.net/shell/↙
    写入成功

    test 是 Shell 内置命令,可以对文件或者字符串进行检测。

    其中,-w选项用来检测文件是否存在并且可写,-n选项用来检测字符串是否非空。

  • 相关阅读:
    java 基础知识学习 priorityQueue
    MySQL 学习三 关于转义
    java基础知识 学习 关于URL中传递的参数含有特殊字符
    MYSQL学习二 关于左连接
    大型网站架构体系的演变
    java 最佳实践
    Spring boot 学习 九
    七: git每次push都输入用户名,密码
    【JS】自学
    【CSS3】CSS3自学
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/12069571.html
Copyright © 2020-2023  润新知