有人知道$?在BASH中意味着什么吗?

我必须编写一个脚本,如果它崩溃或被杀死,它将重启一个进程。所以我发现这始于:

RESTART="/etc/init.d/apache2 restart"
if [ $? -ne 0 ] # if apache not running
then
   # restart apache
   $RESTART
fi

我已经搜索了,但是$?躲避我。

我不确定上面的脚本是否是执行此操作的最佳方法,我假设$ RESTART将挂起,直到进程被杀死或死亡。如果没有,我会认为那里会有某种sleep()调用,所以这件事不会以每小时1000英里的速度旋转。

最佳答案



这是最近执行的命令的退出状态。

[cnicutar@fresh ~]$ ls /nothing
ls: cannot access /nothing: No such file or directory
[cnicutar@fresh ~]$ echo $?
2

[cnicutar@fresh ~]$ ls -ld .
drwx------ 15 cnicutar users 4096 Aug 16 15:29 .
[cnicutar@fresh ~]$ echo $?
0

tldp上查找。

10-04 16:59