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

Bash脚本执行报Bad substitution错误,寻求技术解决帮助

解决Bash脚本中的Bad substitution错误

你的脚本里echo "${"$(detect_value)"_COUNT}"这行语法不符合Bash规则——Bash不支持在参数替换的大括号内直接用命令输出拼接变量名,所以触发了bad substitution错误。

下面给你两种可行的解决方法:

方法1:使用间接引用(推荐,更安全)

先把命令输出和后缀拼接成完整的变量名,再通过Bash的间接扩展语法${!var_name}取值:

#!/bin/bash

function detect_value(){
    # 模拟生成值
    echo "ABCD"
}

ABCD_COUNT=26

# 拼接变量名
var_name="$(detect_value)_COUNT"
# 间接引用取值
echo "${!var_name}"

方法2:使用eval命令

eval可以执行动态拼接的命令,注意转义符号的使用避免意外解析:

#!/bin/bash

function detect_value(){
    echo "ABCD"
}

ABCD_COUNT=26

# 通过eval动态解析变量
eval echo "\$${$(detect_value)_COUNT}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:50:44