`

我使用过的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  
写的不错。。。

相关推荐

    exit命令 退出shell

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

    cmd操作命令和linux命令大全收集

    CMD命令:开始-&gt;运行-&gt;键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...

    入门学习Linux常用必会60个命令实例详解doc/txt

    前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下: Changing fihanging ...

    linux作业:编写shell程序

    应用UNIX的fork()等系统调用,...输入exit或者bye退出);返回父进程; b) 处理后台程序(不需要wait) c) 处理多行命令(分析命令行中的‘;’并处理之) d)应用 dup(), pipe()系统调用具有输入输出重定向以及管道功能

    使用C语言编写一个Linux的外壳Shell(操作系统课程)【100012094】

    编写一个C语言程序作为Linux内核的shell命令行解释程序,所执行的结果需和系统命令行方式保持一致。 增加后台运行功能。即用户可以使用”&”作为一个命令结束,以启动下一个命令。 增加I/O重定向功能。即用户可以...

    linux 常用命令

    退出当前shell,输入:exit 2. useradd netseek 添加一个netseek用户 passwd netseek 给netseek这个用户设置密码. (/etc/passwd /etc/group) userdel netseek 删除账号 userdel -r netseek 删除账号连同自家目录...

    Linux入门 实验报告.docx

    1、掌握Linux下常用网络命令的使用 2、掌握IP地址、子网掩码、网关的设置 3、掌握主机名、DNS域名解析的设置 4、配置 DNS 服务器。 5、配置Apache服务器 二、 实验步骤 Linux下常用网络命令的使用: 打开 Shell ...

    linux下自己用c语言编写的模拟shell

    输入exit或者bye退出);返回父进程; b) 处理后台程序(不需要wait) c) 处理多行命令(分析命令行中的‘;’并处理之) d)应用 dup(), pipe()系统调用具有输入输出重定向以及管道功能;

    java实现批量改文件夹、文件名的shell

    re/cd/ls/man这四个命令拥有命令选项,在使用命令选项的规则统一是:xx-uuff其中xx代表命令,-代表分隔符是必须的,uu代表命令选项,ff代表具体需求的字符。 pwd/history/help/exit是单个输入的命令,没有命令选项。...

    Linux高级bash编程

    使用命令替换来产生for循环的[list] 10-7. 对于二进制文件的一个grep替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号连接文件 10-11. 将目录中的符号连接文件名...

    Linux部署服务器常用命令.doc

    linux部署服务器常用命令 fdisk -l 查分区硬盘 df -h 查空间硬盘 cd / 进目录 ls/ll 文件列表 vi tt.txt i=insert 插入 shift+: 进命令行 wq 保存%退出 cat tt.txt 内容查看 pwd 当期目录信息 mkdir tt建目录 cp tt....

    linux 命令

    退出当前shell,输入:exit 2.useradd netseek 添加一个netseek用户 passwd netseek 给netseek这个用户设置密码. (/etc/passwd /etc/group) userdel netseek 删除账号 userdel -r netseek 删除账号连同自家目录....

    02-CentOS7基础

    基础知识介绍 shell shell俗称壳,它包裹在内核的外面,是用户命令的翻译官。 作用:接收用户的命令,翻译后(处理一下)交给Linux内核处理。...exit #退出当前shell 命令的基本格式 一般的命令组成:

    Linux-shell-study:学习Linux shell 脚本编程时写的一些脚本代码

    由于退出状态由程序编写者定义,因此退出状态也可能不是0或1,遇到这种情况时,需要查阅相关说明文件了解具体含义.####退出状态设置在脚本中设置退出状态需要使用exit命令,其常见的使用形式及对应的含义如下:exit 0:...

    Shell-Emulator:运行命令行指令并返回结果的AC程序,与其他Shell相似

    它执行I / O重定向,允许您使用&符号在后台运行进程,并且还具有一个名为“状态”的命令,该命令显示最新命令的退出值,并显示“ cd”以更改目录。 在提示输入新命令之前,shell将等待前景命令(不带&的命令)...

    azure-shell:[非官方]交互式Azure CLI 2.0命令行界面

    天蓝色的壳 交互式Azure CLI 2.0命令行界面。 [注意]可以在找到Microsoft官方的Azure CLI 2.0 产品特点 自动完成Azure CLI组,子组,命令和参数 语法高亮 ...您可以通过输入exit或quit退出azure-she

    Classic Shell

    Classic Shell 一款将Windows 7和Windows 8开始菜单方便的...5、然后再次在开始菜单图标上点击鼠标右键,在弹出的菜单中选择“Exit”退出程序,然后再次重新启动程序即可!或者重新启动电脑或者注销当前用户也可以的!

    ysh.rar_Linux 查看历史_she_shell ysh_ysh shell_ysh.rar

    一个简单的shell解释程序,能完成简单的命令解析,支持管道,重定向,前后台任务,历史查看,exit退出she

    redhat linux教材20课程学习文档

    第三章 Shell命令使用 3.1 控制台相关命令 clear 命令 echo 命令 yes 命令 3.2 目录操作命令 cd 命令 pwd 命令 mkdir 命令 rmdir 命令 3.3 文件操作命令 ls 命令 touch 命令 cat 命令 more 和 less 命令...

Global site tag (gtag.js) - Google Analytics