`

我使用过的Linux命令之exit - 退出当前shell

阅读更多

我使用过的Linux命令之exit - 退出当前shell

本文链接:http://codingstandards.iteye.com/blog/836625   (转载请注明出处)

 

用途说明

exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。

 

常用参数

格式:exit n

退出。设置退出码为n。(Cause the shell to exit with a status of n.)

 

格式:exit

退出。退出码不变,即为最后一个命令的退出码。(If n is omitted, the exit status is that of the  last  command executed. )

 

格式:$?

上一个命令的退出码。

 

格式:trap "commands" EXIT

退出时执行commands指定的命令。( A trap on EXIT is executed before the shell terminates.)

 

退出码(exit status,或exit code)的约定:

0表示成功(Zero - Success)

非0表示失败(Non-Zero  - Failure)

2表示用法不当(Incorrect Usage)

127表示命令没有找到(Command Not Found)

126表示不是可执行的(Not an executable)

>=128 信号产生

 

man 3 exit 写道
The C standard specifies two constants, EXIT_SUCCESS and EXIT_FAILURE, that may be passed to exit() to indicate
successful or unsuccessful termination, respectively.
 

以下摘自/usr/include/stdlib.h

#define EXIT_FAILURE    1       /* Failing exit status.  */
#define EXIT_SUCCESS    0       /* Successful exit status.  */

 

BSD试图对退出码标准化。

man 3 exit 写道
BSD has attempted to standardize exit codes; see the file <sysexits.h>.
 

 

以下摘自/usr/include/sysexits.h

#define EX_OK           0       /* successful termination */

#define EX__BASE        64      /* base value for error messages */

#define EX_USAGE        64      /* command line usage error */
#define EX_DATAERR      65      /* data format error */
#define EX_NOINPUT      66      /* cannot open input */
#define EX_NOUSER       67      /* addressee unknown */
#define EX_NOHOST       68      /* host name unknown */
#define EX_UNAVAILABLE  69      /* service unavailable */
#define EX_SOFTWARE     70      /* internal software error */
#define EX_OSERR        71      /* system error (e.g., can't fork) */
#define EX_OSFILE       72      /* critical OS file missing */
#define EX_CANTCREAT    73      /* can't create (user) output file */
#define EX_IOERR        74      /* input/output error */
#define EX_TEMPFAIL     75      /* temp failure; user is invited to retry */
#define EX_PROTOCOL     76      /* remote error in protocol */
#define EX_NOPERM       77      /* permission denied */
#define EX_CONFIG       78      /* configuration error */

#define EX__MAX 78      /* maximum listed value */
 

使用示例

示例一 退出当前shell

[root@new55 ~]#
[root@new55 ~]# exit
logout

 

示例二 在脚本中,进入脚本所在目录,否则退出

cd $(dirname $0) || exit 1

 

示例三 在脚本中,判断参数数量,不匹配就打印使用方式,退出

if [ "$#" -ne "2" ]; then
    echo "usage: $0 <area> <hours>"
    exit 2
fi

 

示例四 在脚本中,退出时删除临时文件

trap "rm -f tmpfile; echo Bye." EXIT

 

示例五 检查上一命令的退出码

./mycommand.sh
EXCODE=$?
if [ "$EXCODE" == "0" ]; then
    echo "O.K"
fi
 

问题思考

相关资料

【1】91linux    Linux exit 命令    
【2】曲径通幽   [概念]exit n    
【3】Linux大学  Bash Shell Exit Status Tutorial with Practical Examples   

 

返回 我使用过的Linux命令系列总目录

 

0
0
分享到:
评论
1 楼 di1984HIT 2013-10-29  
写的不错。。。

相关推荐

    Linux命令操作实验-文件目录.pdf

    * 使用 exit 命令退出 csh shell 并返回到 bash shell * 使用 find 命令在系统的根目录下寻找文件,例如查找文件名第一个字符为任意字符,后面是 "asswd" 的文件 * 使用 ls 命令列出 /etc 目录下的所有以 ".conf" ...

    Linux命令操作实验-文件目录.docx

    退出 csh,回到 bash:使用 `exit` 命令可以退出 csh shell,回到 bash shell。 二、目录和文件命令 Linux 中的目录和文件命令是非常重要的,它们可以帮助我们管理和操作文件和目录。 1. 文件和目录的操作命令:...

    Linux常用命令大全-完整版.doc

    exit命令用来退出当前shell,返回到上一级shell或关闭终端。 6. finger: 显示用户信息,例如finger username finger命令用来显示用户的信息,例如用户名、姓名、邮箱、电话号码等。 7. free: 显示系统的内存和交换...

    exit命令 退出shell

    exit命令用来退出当前的shell或退出终端 ,并返回给定值。 执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。状态值参数多用于脚本中,在...

    Linux操作实验-初步了解Linux的命令格式

    - 退出Linux系统:`exit` #### 三、文件维护命令 **实验目的:** - 实习几个基本的文件维护命令。 **知识点:** - **常用文件维护命令:** - `ls`:列出目录内容。 - `pwd`:显示当前工作目录。 - `cd`:改变...

    sqlite-shell-linux-x86-3080500.zip

    "sqlite-shell-linux-x86-3080500.zip" 是针对Linux平台的x86架构的SQLite3命令行接口的压缩包,版本号为3.8.5。这个压缩包包含了一个名为"sqlite3"的可执行文件,它是用于管理和操作SQLite数据库的shell程序。 ...

    linux命令linux命令大全

    * ls [list]:这个命令就相当于 DOS 下的 dir 命令一样,这也是 Linux 控制台命令中最为重要几个命令之一。 * ls -a:显示所有文件,包括隐藏文件 * ls -l:使用长格式显示文件内容 文件属性命令: * 文件的属性...

    Linux命令详解手册

    - exit命令退出当前shell环境; - finger用于查看用户信息; - free命令用来显示系统内存的使用情况; - halt和reboot命令用于关闭和重启系统; - id命令显示用户识别信息; - kill命令向进程发送信号; - last和...

    linux命令手册.pdf

    5. **exit** - 退出当前的shell或终端会话。这对于远程登录或者在图形界面下的终端窗口尤其有用。 6. **finger** - 提供关于其他用户的详细信息,包括他们的登录名、全名、电子邮件地址、空闲时间等。 7. **free**...

    linux-c下面自己编写的shell

    6. **信号处理**:Shell需要处理各种信号,如`SIGINT`(Ctrl+C)用于中断当前命令,`SIGHUP`(挂断信号)用于退出Shell。通过`signal()`或`sigaction()`函数可以注册信号处理器。 7. **循环执行**:Shell是一个循环...

    linux命令详解阿手册PDF文档

    - exit:退出当前shell。 - finger:显示系统用户的详细信息。 - free:显示系统的内存和交换空间使用情况。 - groupdel:删除一个用户组。 - groupmod:修改一个用户组的属性。 - halt:停止所有系统进程并...

    linuxB-shell

    在Linux系统中,Bash(Bourne-Again SHell)是默认的命令解释器,是用户与操作系统交互的重要工具。Bash shell脚本是一种强大的编程语言,它允许用户编写自动化任务,执行日常管理任务,或者创建复杂的系统服务。...

    Linux命令大全完整版.pdf

    - exit命令退出当前shell环境。 - finger命令显示用户信息。 - free命令显示系统内存使用情况。 - ps命令用于显示当前运行的进程状态。 - kill命令发送信号给进程。 - useradd、userdel、usermod分别用于添加、删除...

    Linux命令大全完整版

    例如,在 Shell 中输入 `exit` 后,将退出当前的 Shell 会话。 finger finger 命令用于显示用户的信息,包括用户的姓名、办公室号码、办公室电话号码、家庭电话号码等。其基本语法为:`finger [用户名]`。例如,...

    dos命令与linux的命令

    5. **退出Shell**:在DOS和Linux中,退出命令提示符都是`exit`。 6. **日期和时间**:DOS的`date`和`time`命令在Linux中依然保留,但命令行为`date`和`date`,用于显示和设置日期及时间。 7. **删除文件**:DOS的`...

    linux命令大全完整版

    5. **exit**:关闭当前shell会话或退出登录状态,结束用户与系统的交互。 6. **finger**:提供关于指定用户的详细信息,如用户名、终端、登录时间、最后在线时间等。 7. **free**:显示系统内存的使用情况,包括总...

    unix、Linux命令解释程序 shell

    - `exit`:退出Shell。这个命令会结束当前的Shell会话,将控制权返回给父进程,通常是终端模拟器。 2)支持后台命令:在Linux中,我们可以通过在命令后面加上`&`来将命令放入后台执行。例如,`command &`会让命令...

    linux常用命令大全-使用例子

    Linux操作系统以其开源、... - `exit`:结束当前Shell会话。 这只是Linux命令的一小部分,实际上还有许多其他命令和参数,学习使用它们需要不断实践和查阅文档。熟悉这些命令后,你将能更自如地管理和维护Linux系统。

    学习Linux---不得不知的Linux命令

    exit - 退出shell `exit` 命令用于退出当前的shell会话。例如: ``` exit ``` #### 55. sync - 强制同步内存到磁盘 `sync` 命令用于强制将内存中的数据同步到磁盘。例如: ``` sync ``` #### 56. df - 显示磁盘...

    linux - Advanced Bash Shell Scripting Guide

    1. **Shell基础知识**:首先,你需要了解Shell的基本概念,包括Shell的启动、退出、命令历史记录、环境变量以及如何设置Shell选项。理解这些基本概念将为你提供编写脚本的基础。 2. **命令行参数和变量**:学习如何...

Global site tag (gtag.js) - Google Analytics