当前位置: 首页 > 面试题库 >

有没有办法读取JSON文件中的所有键值对,然后在shell中相应地初始化所有变量?

史修明
2023-03-14
问题内容

给定一个JSON文件,arguments.json

{"dagger": true, "version": false, "nether_strike": true, 
 "greater_bash": "5", "FILE": "ancientscroll.txt", 
 "empower_haste": "1", "help": false}

我可以jq在shell中阅读using 并分别初始化变量:

dagger=$(cat arguments.json | jq '.["dagger"]')
greater_bash =$(cat arguments.json | jq '.["greater_bash"]')

echo $dagger
echo $greater_bash

有没有办法读取JSON文件中的所有键值对,然后在shell中相应地初始化所有变量?


问题答案:

您可以遍历键/值对,并用于declare动态创建变量名。

while read -r name value; do
    declare "$name=$value"
done < <(jq -r 'to_entries[] | "\(.key) \(.value)"' arguments.json)


 类似资料:
  • 我想读取Dockerfile中的变量,该变量在文件中定义。有什么办法可以做到这一点吗? 这是我的DockerFile:

  • 问题内容: 我有一个文件,称之为。 有没有一种方法可以“读取”其中的内容,并获取其中的所有类的列表作为完整的类名,包括其包,例如? 我在考虑,但是似乎找不到用于检索整个类集的方法。 问题答案: 您可以将dexlib2库用作独立库(在maven中可用),以读取dex文件并获取类列表。 请注意,类名将采用“ Ljava / lang / String;”的形式,这就是它们如何存储在dex文件(和Jav

  • 问题内容: 众所周知,Java总是在创建时初始化数组。即总是返回一个所有元素= 0的数组。我知道这对于对象数组是必须的,但是对于原始数组(可能是布尔型),在大多数情况下,我们并不关心初始值。 有人知道避免这种初始化的方法吗? 问题答案: 我已经做了一些调查。没有合法的方法在Java中创建未初始化的数组。甚至JNI NewXxxArray也会创建初始化的数组。因此,不可能确切知道数组清零的成本。尽管

  • 在我的xml文件中有七个文本视图(textview0….textview6),在我的java文件中,我想循环浏览这些视图,但我遇到了一个问题,我无法使用findViewById函数,因为我无法在我想要的类似名称中使用索引(I)

  • 有没有办法列出AWS中的所有资源?对于所有区域,所有资源...例如列出所有EC2实例、所有VPC、API Gateway中的所有API等...我想列出我帐户的所有资源,因为我很难找到我现在可以放弃的资源。

  • 问题内容: 也许这比技术问题更像是一种样式问题,但是我有一个包含多个成员变量的类,并且我想让它起作用,以便在用户第一次创建该类的实例时初始化一些成员变量(即在该功能),我想其他的成员变量从成员函数参数,将稍后被称为定义。所以我的问题是我应该初始化函数中的所有成员变量(并将稍后定义的变量设置为虚拟值)还是初始化函数中的某些成员以及后续函数中的某些成员变量。我意识到这可能很难理解,因此这里有一些示例。