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

Bash脚本遍历布尔变量时如何获取变量名称字符串而非其值

解决方案

你原来的写法问题在于循环时直接取了变量的值,自然无法获取变量名本身。你可以按下面的方式修改,用到Bash的间接变量扩展特性来实现需求:

修改后的代码

for bool in jobdummyjob1 jobdummyjob2 jobdummyjob3
do
    # 间接获取对应变量的布尔值
    current_val="${!bool}"
    echo "Boolean Value of $bool is $current_val"
    if "$current_val" ; then 
        echo "$alljobs"
        curl -X POST "https://jenkins.xxxxxxxxx.com/job/$bool/build" --user xxxxxxx.yyyyyyy@xxxxxx.com:ewfwedf3f234523555235235235235235
    fi
done

核心修改点

  • 循环的遍历对象改为纯变量名字符串,不要加$前缀,这样每次循环拿到的$bool就是你需要填入URL的任务名称
  • 通过${!bool}的间接扩展语法,拿到该变量名对应的实际布尔值用于条件判断
  • 条件判断用取出的布尔值,URL拼接直接使用$bool即可得到变量名字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:39:02