Головоломка: что делает эта команда bash? - PullRequest
0 голосов
/ 25 мая 2018

Нашел это в https://github.com/RocketChat/Rocket.Chat/blob/master/.circleci/config.yml, и я действительно озадачен тем, что на самом деле делает эта команда.Кто-нибудь может просветить меня?

for i in $(seq 1 5); do
    npm test && s=0 && break || s=$? && sleep 1
done
(exit $s)

1 Ответ

0 голосов
/ 25 мая 2018

Преобразование моего комментария в ответ в соответствии с предложением.

Этот скрипт пытается выполнить команду npm test максимум 5 раз и завершается со статусом выхода npm при первом успехе или 5 неудачах.Для каждой неудачной попытки он спит в течение 1 секунды до следующей попытки.

Этот сценарий может быть переписан как (для понимания):

for ((i=1; i<=5; i++)); do
    if npm test; then
       s=0
       break
    else
       s=$?
       sleep 1
    fi
done
exit $s
...