如何在Bash中使用包含换行符的字符串列表转换变量,如下所示
groups="group_1
group_2
group_3"
Run Code Online (Sandbox Code Playgroud)
到JSON字符串数组:
{
[ "group_1", "group_2", "group 3" ]
}
Run Code Online (Sandbox Code Playgroud)
这有可能与jq?
如何在不知道最新版本的确切版本号的情况下找到Go的最新版本号?这是为了构建下载URL.
当发布在GitHub上时,我可以使用例如
curl -s "https://api.github.com/repos/nagios-plugins/nagios-plugins/releases/latest" | jq -r '.assets[] | .browser_download_url')
Run Code Online (Sandbox Code Playgroud)
但由于下载网址不在GitHub上,而是在https://golang.org/dl/上,我很想知道如何找到最新的Go版本号.
有没有办法在 Bash 中使用 jq 一次更新 json 文件中的多个值?例如:
#!/bin/bash
explore_host_name () {
host_name_lastrun=$(date '+%Y-%m-%d %H:%M:%S,%3N')
host_name_value="$(hostname)"
result=$(jq --arg host_name_value "$host_name_value" '.host.properties.name.value = $host_name_value' data/firemotd-data-host.json)
echo "${result}" > data/firemotd-data-host.json
result=$(jq --arg host_name_lastrun "$host_name_lastrun" '.host.properties.name.lastrun = $host_name_lastrun' data/firemotd-data-host.json)
echo "${result}" > data/firemotd-data-host.json
}
explore_host_name
Run Code Online (Sandbox Code Playgroud)
json文件:
{
"host": {
"properties": {
"name": {
"generated": "@logon",
"value": "${host.name}",
"lastrun": "2020-06-09 20:48:00,357",
"type": "keyword"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
理想我想更新host.properties.name.lastrun,并host.properties.name.value在同一时间。