zoukankan      html  css  js  c++  java
  • Shell $?获取函数返回值或者上一个命令的退出状态

    Shell $?获取函数返回值或者上一个命令的退出状态

    来自:互联网
     
    时间:2021-01-12
     
    阅读:2

    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。

    所谓退出状态,就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1,这和C语言的 main() 函数是类似的。

    不过,也有一些命令返回其他值,表示不同类型的错误。

    1) $? 获取上一个命令的退出状态

    编写下面的代码,并保存为 test.sh:

    #!/bin/bash
    if [ "$1" == 100 ]
    then
      exit 0 #参数正确,退出状态为0
    else
      exit 1 #参数错误,退出状态1
    fi

    exit表示退出当前 Shell 进程,我们必须在新进程中运行 test.sh,否则当前 Shell 会话(终端窗口)会被关闭,我们就无法取得它的退出状态了。

    例如,运行 test.sh 时传递参数 100:

    [mozhiyan@localhost ~]$ cd demo
    [mozhiyan@localhost demo]$ bash ./test.sh 100 #作为一个新进程运行
    [mozhiyan@localhost demo]$ echo $?
    0
    

    再如,运行 test.sh 时传递参数 89:

    [mozhiyan@localhost demo]$ bash ./test.sh 89 #作为一个新进程运行
    [mozhiyan@localhost demo]$ echo $?
    1
    

    2) $? 获取函数的返回值

    编写下面的代码,并保存为 test.sh:

    #!/bin/bash
    #得到两个数相加的和
    function add(){
      return `expr $1 + $2`
    }
    add 23 50 #调用函数
    echo $? #获取函数返回值
    

    运行结果:
    73

    有 C++、C#、Java 等编程经验的读者请注意:严格来说,Shell 函数中的 return 关键字用来表示函数的退出状态,而不是函数的返回值;Shell 不像其它编程语言,没有专门处理返回值的关键字。

  • 相关阅读:
    48. Rotate Image
    83. Remove Duplicates from Sorted List
    46. Permutations
    HTML5笔记
    18. 4Sum
    24. Swap Nodes in Pairs
    42. Trapping Rain Water
    Python modf() 函数
    Python min() 函数
    Python max() 函数
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/14271540.html
Copyright © 2011-2022 走看看