4

有人知道$?BASH 中的含义吗?

如果进程崩溃或被杀死,我必须编写一个脚本来重新启动进程。所以我发现这是从:

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

我已经进行了搜索,但是 $? 躲着我。

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

4

2 回答 2

6

有人知道$是什么吗?在 bash 中的意思

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

[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中查找。

于 2012-08-17T20:02:03.320 回答
0

问:找不到什么 bash $?方法

A:这是程序的“返回状态”。

/* In this example, "$?" from "./hello" will be "0": Status == OK */
#include <stdio.h>

int main (argc, char*argv[])
{
  printf ("Hello world!\n");
  return 0;
}

以下是“特殊 shell 变量”的列表:

于 2012-08-17T20:04:23.453 回答