5

bash スクリプトで少し問題が発生しました。私のスクリプトは、とりわけ、サーバーを起動するのに時間がかかります。長い起動に対抗するために、サーバーがまだ実行されているかどうかを確認するためにサーバーにクエリを実行する while ループを挿入しました。

while [ $running -eq 0 ]; do
echo "===" $response "===";
if [ "$response" == "" ] || [ "$response" == *"404 Not Found"* ]; then
    sleep 1;
    response=$(curl $ip:4502/libs/granite/core/content/login.html);
else
   running=1;
fi
done

ループを終了すると、$response は "404" 文字列に等しくなります。それが事実なら、事はまだループにあるはずですよね?私のループが途中で終了しているようです。

ジョー

4

2 に答える 2

6

[ .. ]グロブでは一致しません。使用[[ .. ]]:

if [ "$response" == "" ] || [[ "$response" == *"404 Not Found"* ]]; then
于 2013-07-09T00:08:16.297 に答える