如果我有这样的JSON,
{
"hello1": "world1",
"testk": "testv"
}
Run Code Online (Sandbox Code Playgroud)
我想将这些键值对中的每一个导出为环境变量,如何通过shell脚本来实现?那么,例如,当我在终端上写字时echo $hello1,world1应该打印并且类似地用于其他键值对?注意:上面的JSON存在于一个被调用但$values不在文件中的变量中.
我知道它将通过jq并为此编写一个shell脚本来完成,但它不起作用.
for row in $(echo "${values}" | jq -r '.[]'); do
-jq() {
echo ${row} | jq -r ${1}
}
echo $(_jq '.samplekey')
done
Run Code Online (Sandbox Code Playgroud)
编辑:尝试Turn的答案,我这样做了:
values='{"hello1":"world1","hello1.world1.abc1":"hello2.world2.abc2","testk":"testv"}'
for s in $(echo $values | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" ); do
export $s
done
Run Code Online (Sandbox Code Playgroud) 我已经创建了一个函数,它基本上输出多个长度字符串,例如,
"110110" "110" "101" "011"
Run Code Online (Sandbox Code Playgroud)
现在,我在变量a中分配了函数的输出,
a<- c("110110", "110", "101", "011")
Run Code Online (Sandbox Code Playgroud)
a的类出来是个性.现在,我只想要那些具有最大长度的字符串.例如,在该示例中,最大长度为"110110".所以,我想要那个.我尝试使用max命令,但如果有多个,则只返回一个最大长度字符串.例如,在这些字符串中,
a <- c("110", "101", "abc", "cab")
Run Code Online (Sandbox Code Playgroud)
使用max命令仅返回"cab".但是,我想要所有最大长度的字符串.我该怎么做?
#include<iostream>
using namespace std;
int main (void)
{
int test,r,i=0;
float f;
cin>>test;
i++;
while ( test!=0 )
{
cin>>r;
f = 4*r*r + 0.25;
cout<<"Case "<<i<<":"<<" "<<f<<"\n";
i++;
test--;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我制作了这个简单的程序来计算表达式的值4*r*r+0.25.这里r总是一个介于1 <= r <= 1000000之间的整数.我必须将上面的表达式的值打印到两个小数位.但是,当我输入r任何> = 50 的值时,它仅显示结果output.2,例如,在输入值时50,它将结果显示为10000.2.为什么会这样?我尝试使用double而不是浮动,但它没有帮助.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int minimu ( int a, int b, int c );
int main (void)
{
int t,i,j;
cin>>t;
while ( t != 0 )
{
string a;
string b;
cin>>a>>b;
int k;
int len1 = a.length();
int len2 = b.length();
int dp[len1][len2];
dp[0][0] = 0;
for ( i = 0; i < len1; i++ )
{
dp[i][0] = i;
}
for ( j = 0; j < len2; j++ )
{
dp[0][j] …Run Code Online (Sandbox Code Playgroud)