谜题:这个bash命令有什么作用?

时间:2018-05-25 05:40:59

标签: bash puzzle

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 :(得分:1)

按照建议将我的评论转换为答案。

此脚本尝试最多运行npm test命令5次,并在第一次成功或5次失败时以退出状态npm退出。对于每次失败的尝试,它会在下一次尝试之前休眠1秒。

此脚本可能会被重写为(用于理解):

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