Chr*_*ski 3 scripting bash variable
#!/usr/bin/env bash
set -euo pipefail
if [ -z "$BUILD_DATE" ]; then
export BUILD_DATE="$(date +%s%N)"
echo "???"
else
echo "!!!!!!!"
fi
Run Code Online (Sandbox Code Playgroud)
上面没有输出任何内容,因为它遇到错误:env/local-testing.sh:22: BUILD_DATE: parameter not set。
有没有替代运行set +u和set -u再次围绕这个条件?
如果您正在运行set -u并且有一个可能未设置的变量,并且您需要通过测试来测试它是否为空-z,那么您可以使用
if [ -z "${BUILD_DATE:-}" ]; then
Run Code Online (Sandbox Code Playgroud)
如果变量为空或未设置,"${BUILD_DATE:-}"则将扩展为空字符串BUILD_DATE。