Мы делаем частые развертывания, используя udeploy, и у нас есть сценарий оболочки для перезапуска http-сервера apache в качестве последней задачи. Скрипт прост: -
cd bin_path
sudo ./apachectl -k stop
sleep 5
sudo ./apachectl start
while [ $? -ne 0 ]
do
sudo ./apachectl start
sleep 1
done
Теперь я хотел бы включить в этот цикл while дополнительное условие, которое проверяет определенное значение переменной счетчика, чтобы попытка перезапуска сервера была ограничена, скажем, 5 раз. Теперь вот что я хочу.
var = 0
sudo ./apachectl start
while [ $? -ne 0 -o $var lte 5 ]
do
var = $((var+1))
sudo ./apachectl start
sleep 1
done
Но почему-то я не эксперт в синтаксисе сценариев оболочки. Если кто-то может помочь мне исправить сценарий для достижения желаемого решения.
var=0
- person Diego Torres Milano   schedule 30.08.2016while
имеют проблему. Когда цикл повторяется,$?
будет статусом командыsleep 1
, а неsudo
. - person Barmar   schedule 30.08.2016while sudo ./apachectl start; do
. - person Barmar   schedule 30.08.2016