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




  • 相关阅读:
    悬浮按钮
    C语言学习笔记
    python3之环境搭建以及基础语法
    设计模式之单例模式
    浅谈vuex
    用位运算替代js中的常见操作
    浅析Symbol
    egg.js源码解析之render()
    js的事件循环机制和任务队列
    浅谈js异步
  • 原文地址:https://www.cnblogs.com/ting152/p/12554300.html
Copyright © 2011-2022 走看看