zoukankan      html  css  js  c++  java
  • 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选项用来检测字符串是否非空。

  • 相关阅读:
    silverlight 调用默认打印机
    拿来主意
    关于js智能提示的封装(修订版)
    silverlight 获取文本框焦点
    silverlight Timer
    winform 中写app.config文件时 调试情况下没有改变的原因
    关于asp:GridView和dx:ASPxGridView固定表头的jquery代码封装
    Microsoft Visual Studio 2010的前世今生
    游戏开发之我见
    JS中数组去重
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/12069571.html
Copyright © 2011-2022 走看看