有人知道BASH中$?
的含义吗?
我必须编写一个脚本,如果它崩溃或被杀死,它会重启一个进程。所以我发现这是从:
开始RESTART="/etc/init.d/apache2 restart"
if [ $? -ne 0 ] # if apache not running
then
# restart apache
$RESTART
fi
我做了搜索,但是$?我不知道。
我不确定上述脚本是否是执行此操作的最佳方式,我假设$ RESTART将挂起,直到进程被终止或死亡?如果没有,我会假设那里会有一些sleep()调用,所以这个东西不会以每小时1000英里的速度旋转。
答案 0 :(得分: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处查找。
答案 1 :(得分:0)
答:这是该计划的“返回状态”。
/* 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变量”列表: