命令行返回值
Linux终端中执行一条命令后会返回一个状态值(Error Number),返回0说明程序执行成功,返回非0说明程序执行出错,返回非0的情况下,一般都会输出错误原因。
查看命令行返回值
讲到这里会有同学疑惑了,怎么我执行命令的时候没有看到返回值呢?其实这个不能怪你没看到,因为默认是不显示返回值的。
一条命令执行完成后,返回值保存在特殊变量 $? 中,可以使用 echo $? 命令查看返回值,例如:
$ ls
main.go
$ echo $?
0
每次都使用 echo $? 查看返回值还是挺麻烦的,可以使用如下命令让返回值显示在提示符中:
export PS1="[\$?]${PS1}"
可以使用perror命令查看每个返回值对应的错误原因,例如:
$ perror 0
OS error code 0: Success
$ perror 1
OS error code 1: Operation not permitted
$ perror 2
OS error code 2: No such file or directory
$ perror 3
OS error code 3: No such process
$ perror 4
OS error code 4: Interrupted system call
$ perror 5
OS error code 5: Input/output error
macOS系统中也类似,只是macOS系统默认没有perror命令。
Windows系统中执行一条命令后可以使用echo %ERRORLEVEL%命令来查看返回值,例如:
C:\Users\admin>ping www.baidu.com
C:\Users\admin>echo %ERRORLEVEL%
0