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 回答
0

我不确定为什么我的原始脚本失败了。我认为这与我与 HTML 进行比较的事实有关。为了让我的脚本正常工作,我最终使用了字符串长度而不是内容。使用以下比较器使一切正常运行。

if [ -z "$response" ] || [ ${#response} -lt 100 ]; then

谢谢你的帮助,乔

于 2013-07-09T02:20:36.587 回答