$?特殊变量功能

执行命令后得到返回值

[root@salt-client-192 ~]# pwd  #<==执行pwd命令,然后用“echo $?”查看执行命令的状态返回值。
/root
[root@salt-client-192 ~]# echo $?   #<==返回0,表示上一个命令的执行是成功的。
0
[root@salt-client-192 ~]# ls /home/dbb
ls: 无法访问/home/dbb: 没有那个文件或目录
[root@salt-client-192 ~]# echo $?    #<==返回值为非0,表示上一个命令(ls /home/dbb)执行错误。注意:对于不同的错误,返回值是
         不同的。
2
[root@salt-client-192 ~]# asdas
-bash: asdas: command not found
[root@salt-client-192 ~]# echo $?
127

不同命令的执行结果中,“$?”的返回值不尽相同,但在工作场景中,常用的就是0和非0两种状态,0表示成功运行,非0表示运行失败

对于新手来说,在安装服务时,可以通过获取执行命令的返回值来确定命令的执行状态,从而快速确定命令是否执行成功。不过,有经验的技术人员不需要获取返回值,通过命令的最后过程输出就可以快速判断是否成功

在企业场景下,“$?”返回值的用法如下:
1)判断命令、脚本或函数等程序是否执行成功。
2)若在脚本中调用执行“exit数字”,则会返回这个数字给“$?”变量。
3)如果是在函数里,则通过“return数字”把这个数字以函数返回值的形式传给“$?”。

原文地址:https://www.cnblogs.com/mingerlcm/p/9700358.html