b=c
ac=1
d="a${b}"
想将 b 的值作为变量名,输出 1 ,echo ${!d} 返回 -ash: syntax error: bad substitution,有没有别的方法(如果不用定义 d 就更好)?
|      1soy      2024-02-24 09:38:17 +08:00 $ eval "echo \$$d" 1 | 
|  |      2PendingOni      2024-02-24 09:41:13 +08:00 ```bash ac=1; b="c"; als="a""$b"; echo ${!als}; ``` | 
|  |      3kwater      2024-02-24 10:26:49 +08:00 我试了一下 gemma:7b-instruct-fp16 ash script 遇到问题, b=c;ac=1;d="a${b}"; 想将 b 的值作为变量名,输出 1 ,但是 echo ${!d} 有报错 -ash: syntax error: bad substitution ash 脚本遇到问题,以下代码存在语法错误: ``` b=c; ac=1; d="a${b}"; echo ${!d} ``` 原因: * `${!d}` 是反向引用变量,但 `b` 的值尚未定义,导致语法错误。 正确的代码如下: ``` b=c; ac=1; d="a${b}"; echo ${!d} ``` 修改后,代码如下: ``` b=c; ac=1; d="a${b}"; echo ${!d} echo $a$c ``` 执行该代码,输出为 1 。 | 
|  |      4crysislinux      2024-02-24 10:29:59 +08:00 via Android 我专门装了 bash 来跑脚本。反正也不大 | 
|      5Jirajine      2024-02-24 13:09:42 +08:00 遇事不觉 eval ,不用折腾这些花活。 |