You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在/bin/sh环境中检查环境变量是否已设置?求替代bash的命令

在/bin/sh中检查环境变量是否已设置的可行命令

bash的[[ -v ]]语法是bash专属扩展,/bin/sh作为POSIX标准shell不支持该语法。以下是两种符合POSIX标准、适用于/bin/sh的检查方式:

  • 检查变量是否已设置(无论值是否为空):
    使用POSIX参数扩展${VAR+word}实现,当变量已设置时会替换为指定的word,未设置则为空。结合[ -n ]判断非空:

    if [ -n "${PROXY_PASS_MAPPING+set}" ]; then echo "set"; fi
    
  • 区分变量已设置且非空、已设置为空、未设置三种情况:
    利用${VAR:-}扩展(未设置时返回空),结合[ -z ]判断:

    if [ -z "${PROXY_PASS_MAPPING:-}" ]; then
        if [ -z "${PROXY_PASS_MAPPING+set}" ]; then
            echo "未设置"
        else
            echo "已设置但为空"
        fi
    else
        echo "已设置且非空"
    fi
    

内容的提问来源于stack exchange,提问作者kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:05:27