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

Q: 何の 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;
}

「特別なシェル変数」のリストは次のとおりです。

于 2012-08-17T20:04:23.453 に答える