zoukankan      html  css  js  c++  java
  • Linux Shell学习笔记:exit退出状态代码

    inux提供$?特殊变量来保存最后一条命令执行结束的退出状态。执行完一条命令后,立即执行echo$?,可以查看最后一条命令的退出状态值。

    正常的情况下,命令成功执行完成的退出状态是0,如果非0,则命令执行有错。
    该命令可以用于检查命令是否正确执行,比如在解压包的时候,检查解压包是否成功十分有效。

    自定义退出状态码,可以在脚本中定义自己的退出状态代码,然后使用echo $?检查。

    退出状态码最高是255,一般自定义的代码值为0~255,如果超出255,则返回该数值被256除了之后的余数。



    退出状态代码:

    0 命令成功完成

    1通常的未知错误

    2误用shell命令

    126命令无法执行

    127没有找到命令

    128无效的退出参数

    128+x使用Linux信号x的致命错误。

    130使用Ctrl-C终止的命令

    255规范外的退出状态

    ubuntu下测试结果如下

    wl@wl-MS-7673:/home/python$ date
    2013年 11月 14日 星期四 19:12:45 CST
    wl@wl-MS-7673:/home/python$ echo $?
    0
    wl@wl-MS-7673:/home/python$ kkllk
    kkllk: command not found
    wl@wl-MS-7673:/home/python$ echo $?
    127
    wl@wl-MS-7673:/home/python$ ls
    hello.py  hello.py~
    wl@wl-MS-7673:/home/python$ vim a.c
    wl@wl-MS-7673:/home/python$ ls
    hello.py  hello.py~
    wl@wl-MS-7673:/home/python$ gedit a.c
    wl@wl-MS-7673:/home/python$ ./hello.py
    bash: ./hello.py: 权限不够
    wl@wl-MS-7673:/home/python$ echo $?
    126
    wl@wl-MS-7673:/home/python$ date %t
    date: 无效的日期"%t"
    wl@wl-MS-7673:/home/python$ echo $?
    1
    wl@wl-MS-7673:/home/python$ 
    


    root@wl-MS-7673:~# ls -sail test
    790207 4 -rwxr--r-- 1 root root 30 11月 14 19:25 test
    root@wl-MS-7673:~# ./test
    root@wl-MS-7673:~# echo $?
    44
    root@wl-MS-7673:~# cat test
    #!/bin/bash
    var=300
    exit $var
    root@wl-MS-7673:~# 
    


  • 相关阅读:
    OutOfMemoryError异常
    synchronized四种锁状态的升级
    题解LeetCode--三数之和
    JDK 8的HashMap源码解析
    LinkedList原理分析
    队列与LinkedList原理实现
    Java中的递归以及不死神兔实例(斐波那契数列)
    递归问题1
    排序的第二天_快速排序与归并排序
    yum源遇到的问题
  • 原文地址:https://www.cnblogs.com/riskyer/p/3424002.html
Copyright © 2011-2022 走看看