访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

Linux命令的返回值

时间:2019-07-11

linux格式化命令_linux命令_linux关机命令

Linux命令的返回值

在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结束时,都会返回一个数字值,这个值叫做返回值,或者称为错误号 ( Error Number )。

在控制台下,有一个特殊的环境变量$?,保存着前一个程序的返回值,我们可以试试:

linux命令_linux关机命令_linux格式化命令

$ ls *.png
Diagram1.png  eqn.png         peazip.png
eqn4.png      Mandelbrot.png  x2.png
$ echo $?
0

先随便执行个命令,比如像上面的 ls 某些文件,然后通过 echo $?,打印 $? 的值~

我们发现返回值是 0,这是什么意思呢?

linux命令_linux格式化命令_linux关机命令

只要返回值是 0,就代表程序执行成功了~

也就是说,如果 $? 变量的值不是 0 的话,就表示上一个命令在执行的过程中出错了。我们可以试着 ls 一个不存在的文件:

$ ls linuxgem
ls: 无法访问 linuxgem: 没有那个文件或目录
$ echo $?
2

linux格式化命令_linux关机命令_linux命令

这样,对于某些打印出一堆不熟悉的英文信息的命令,可以方便的看出它是否成功执行结束。

不过,每次都 echo $? 一下太累了,没关系linux命令,你可以把 $? 放在提示符里去:

$ export PS1="[\$?]${PS1}"
[0]test@test:$

linux命令_linux关机命令_linux格式化命令

这个命令前面没加那个c:\也就是搜索路径,这样他就会以当前目录为搜索路径,比如你这个bat你把他放在d:\test目录下执行,那么他就会把d:\test目录和他下面的子目录的全部exe文件列出来。求助在线自动更新之后,为什么总是提示更新,怎么修改versioncdoe的值 如题,在网上找了代码实际了在线更新,以及安装,问题是安装了下次进来还是提示要更新,调试的时候获取manifest里面的版本号始终是初始的值,我现在的问题是不知道这个要怎么更新,不是安装的时候会自动修改sd卡的信息吗。这个在openssl官方网站上找到了,方法是禁用ipv6在openssl目录下执行下列命令perl configure vc-win32 -dopenssl_use_ipv6=0最终编译动态库完成后,输出都在out32dll目录下:包括可执行文件、两个dll 和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib,如果使用vs/vc编程只需按照下文的方法进行即可,如果需要使用openssl命令,还需要在系统环境变量path中增加c:\openssl\out32dll路径,因为openssl.exe就在该目录下,声明后可以直接在命令行中使用openssl命令。

那么如果返回的值不是 0,我们要怎么知道是那里出错了呢? 大多数的程序出错都会给出提示,如果没有提示的话,可以用perror这个程序来查看错误的信息linux命令,比如返回值是 2,我们可以运行:

$ perror 2
OS error code   2:  No such file or directory

这样就清楚了,原来是文件不存在~

错误对照表:

 上一个教程:Linux下Nginx的常用命令