我的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”字符串。如果是这样的话,那东西应该还在循环中,不应该吗?似乎我的循环过早退出。
乔
答案 0 :(得分:6)
[ .. ]
与glob不匹配。使用[[ .. ]]
:
if [ "$response" == "" ] || [[ "$response" == *"404 Not Found"* ]]; then
答案 1 :(得分:0)
我不确定为什么我原来的剧本失败了。我认为这与我与HTML进行比较的事实有关。为了让我的脚本工作,我使用字符串长度而不是内容。使用以下比较器,一切都在游泳。
if [ -z "$response" ] || [ ${#response} -lt 100 ]; then
感谢您的帮助, 乔