我们使用udeploy进行频繁部署,我们有一个shell脚本来重启apache http服务器作为最后一个任务。脚本很简单: -
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>My Cool Website</title>
<META name="description" content="some stupid blurb about this site">
<META name="keywords" content="a bunch of cool keywords">
</head>
<frameset rows="100%,*" border="0">
<frame src="https://cool-name-24253.herokuapp.com/confirmation" frameborder="0" />
<frame frameborder="0" noresize />
</frameset>
<!-- pageok -->
<!-- 06 -->
<!-- -->
</html>
现在我想在这个while循环中包含一个额外的条件来检查计数器变量的某个值,这样重启服务器的次数仅限于5次。 现在这就是我想要的。
cd bin_path
sudo ./apachectl -k stop
sleep 5
sudo ./apachectl start
while [ $? -ne 0 ]
do
sudo ./apachectl start
sleep 1
done
但不知何故,我不是shell脚本语法方面的专家。 如果有人可以帮我纠正脚本以实现所需的解决方案。
答案 0 :(得分:2)
你有几个问题。
=
附近没有空格。while
循环正在测试sleep
的状态,而不是sudo
。 or
组合条件时,您正在使用and
。test
中的比较需要-
前缀。正确的脚本应该是:
var=0
while ! sudo ./apachectl start && [ $var -le 5 ]
do
var=$((var+1))
sleep 1
done
答案 1 :(得分:0)
&#34;定影&#34;当单行&#34; apachectl重启&#34;脚本似乎是徒劳的练习。完成同样的事情。