使用echo $? 查看命令成功执行的原理

转载于:http://blog.csdn.net/cmzsteven/article/details/49049387

在进行源代码编译,或者执行命令无法确认所执行的命令是否成功执行的情况下,我们都会使用 echo $? 来进行测试。

如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。

之前在学习的时候只是机械的接受了这个事实,没有考虑背后的原理。

这二天在查看资料的时候突然看到了“进程生命周期”的知识:

当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。

也就是说我们在执行 echo $? 时反回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。

更多linux资料请查看:http://www.apelearn.com/bbs/?fromuid=4297

时间: 2024-10-06 05:21:56

使用echo $? 查看命令成功执行的原理的相关文章

[Shell]Bash基本功能:多命令顺序执行与管道符

/*----------------------------------------------------------------------------------------------- @黑眼诗人 <www.chenwei.ws> -----------------------------------------------------------------------------------------------*/ 一. 多命令顺序执行 分号(;)        逻辑与(&a

多命令顺序执行、管道符 ; &amp;&amp; || |

多命令顺序执行: 实际使用举例: ls & echo yes || echo no #命令成功执行,输出yes,否则输出no 管道符:| 命令1 | 命令2 #把命令1的输出作为命令2的输入

1.15运行命令直至执行成功

在日常工作中使用shell时,有时候命令只有满足某些条件或是某种外部事件,操作才能够成功执行,这种情况下,你可能系统重复执行命令,直至成功为止. 1.按照以下方式定义函数: repeat() { while true do [email protected] && return done } 或者把它放入shell的rc文件,更便于使用: repeat() { while ture; do [email protected] && return ;done } 2.工作原理

解决命令行执行shell脚本成功,但crontab执行失败

实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #!/bin/bash #author Liuyueming . /etc/profile #开始没有加这个环境变量 for i in {10..35} do n=`ifconfig|grep 10.13.0.${i}|wc -l` #循环取ip并计数 # echo `ifconfig|grep 10.

shell脚本中判断上一个命令是否执行成功

2018-12-21 shell中使用符号"$?"来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功 示例如下: if [ $? -ne 0 ]; then echo "failed" else echo "succeed" fi 或者: if [ $? -eq 0 ]; then echo "succeed" else echo "failed&

[转帖]linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令

linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令 https://binwaer.com/post/12.html yun install -y screen screen -S zhaobsh ping www.163.com 关闭xshell 再次连接 screen -ls 根据 pid 使用 screen -r pid 再次打开连接. 一.背景 系统管理员经常需要SSH 或者telent 远程登录到linux 服务器,经常运行一些需要很长时间才能完

以上的进程查看均可以执行“man 进程名”来查看进程的功能细节CentOS-6.5-NFS部署

nfs-server与nfs-client端配置一样 [[email protected] /]# uname -r    打印系统版本 2.6.32-431.el6.x86_64 [[email protected] ~]# rpm -aq nfs-utils portmap rpcbind        #检查nfs相关的包 nfs-utils-1.2.3-39.el6.x86_64 rpcbind-0.2.0-11.el6.x86_64 [[email protected] /]# tai

PHP下的命令行执行

PHP 的命令行模式 以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [options] [-f] <file> [args...] php [options] -r <code> [args...] php [options] [-- args...] -s Display colour syntax highlighted source. -w Display sourc

Linux端口以及防火墙端口的查看命令

常用命令 netstat -pan|grep 2809  :查看特定端口的情况 netstat -nl | grep 110 :查看特定端口的情况 netstat -ap  :在上面命令的基础上列出连接的PID(进程号),用这个PID,可以使用KILL 来杀死连接    例如:某个连接的PID=111,想踢出去就使用 KILL -9 111.ok!netstat -rn  :输出路由表nmap  127.0.0.1  :查看本机开放的端口,会扫描所有端口nmap  -p 1024  65535?