gpt4 book ai didi

linux - 间接扩展返回变量名而不是值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:57 24 4
gpt4 key购买 nike

我正在尝试使用间接扩展设置一些变量。根据我读过的文档,设置应该很简单:

var1=qa
qa_num=12345
varname="${var1}_ci"

echo ${!varname}

我应该得到“12345”。相反,输出是“varname”。如果我删除感叹号,我将以“qa_ci”结束,而不是“12345”

这应该是一个相对简单的解决方案,所以我不确定我遗漏了什么,如果有的话。

最佳答案

您的代码定义了 qa_num,但是 varname 赋值引用了 qa_ci。结果,您的 echo 扩展了不存在的 qa_ci,给出了空结果。更改 varname 分配可以解决我系统上的问题。

示例:foo.sh:

#!/bin/bash
var1=qa
qa_num=12345
varname="${var1}_num" # <=== not _ci

echo "${!varname}" # I also added "" here as a general good practice

输出:

$ bash foo.sh
12345

关于linux - 间接扩展返回变量名而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56759475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com