应当出口1在终端上显示任何东西



如果其他脚本或过程,例如gitlab .gitlab-ci.yml文件中的顺序任务,请依赖于bash脚本而没有错误继续或没有的bash脚本退出进一步执行;BASH脚本是否应该在退出0以外要做任何其他事情以获得成功或退出1以捕获所有错误?

下面的示例代码测试是否成功部署了站点。

#!/bin/bash
flag="false"
for i in {1..10}
    do
        response=$(curl -Is http://mysite/ | head -n 1 |  tr -d 'r')
        echo "$response"
        if [ "$response" = "HTTP/1.1 200 OK" ]; then
            echo "SITE UP"
            flag="true"
            exit 0
        fi
        sleep 1s
done
if [ "$flag" = "false" ]; then
    echo "SITE DOWN"
    exit 1
fi

所有内容都按预期工作100%,并且将脚本执行为./test-up.sh > /dev/null,以抑制使用的调试echos(以及Curl命令返回的文本(。

但是,如果脚本失败,则在命令行上没有任何关于错误的印刷。命令行保持空白。如果遇到出口0,也会发生同样的情况。

上述打算?

echo to stderr

echo "SITE DOWN" >&2

最新更新