【问题标题】:Update value of a global variable with a variable inside in bash用bash中的变量更新全局变量的值
【发布时间】:2019-01-03 13:18:34
【问题描述】:

如何更新变量内部的变量并使其保持全局?

我知道我可以这样做来更新一个变量,但它不是全局的:

for i in {1..24}; do 
    query=query_$i
    echo $query
done

我想做这样的事情:

query=query_$i

for i in {1..24}; do
    echo $query
done

变量不更新。

【问题讨论】:

  • 除非你在一个函数中并且明确地声明了你的变量 local,那么更新它的值对于整个 shell 都是可见的,值已经更新了。我希望在你之后第一个循环输出query_24(如果不相信,请参阅here),这不是你想要的吗?
  • 你会用任何其他语言来做这个吗?为什么你觉得有必要在bash 中这样做?

标签: bash scripting scripting-language


【解决方案1】:

我真的不明白你为什么需要这样做。如果是测验,我能想到的一种方法是在“for”循环中将query 作为命令运行:

query='echo query_$i'                                                                                                      

for i in {1..24}; do                                                                                                       
    eval $query                                                                                                            
done      

【讨论】:

  • 没有。这不是测验。这是无知。需要对参数更改的数据库进行查询。
猜你喜欢
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 2020-08-03
  • 1970-01-01
相关资源
最近更新 更多