2016-03-02 32 views
1

我正在使用使用curl从配置获取特定数组值的脚本。我想将输出放置到分隔值的列中(值未知的脚本)。这里是我的代码:在列输出中使用命令变量不起作用

# get overlay networks and their details 
get_overlay=`curl -H "X-Person-Token: $auth_token" -H "X-Person-Email: $auth_email" -k "$api_host/api/v1/networks"` 

# array of overlay names with uuid 
overlay_name=`echo $get_overlay | jq '.[] | .name'` 
overlay_uuid=`echo $get_overlay | jq '.[] | .uuid'` 
    echo "" 
    echo -e "Overlay UUID\n$oname $ouuid" | column -t 
exit 0 

这里的输出中:

Overlay         UUID 
"TESTOVERLAY" 
"Auto_API_Overlay" 
"ANOTHEROVERLAYTEST"     "ea178905-6ab0-4154-ab05-412dc4b39151" 
"e5be9dbe-b0fc-4e30-aaf5-ac4bdcd863a7" 
"850ebf6b-3651-4cf1-aae1-5a6c03fad61b" 

我所期待的是:

Overlay         UUID 
"TESTOVERLAY"       "ea178905-6ab0-4154-ab05-412dc4b39151" 
"Auto_API_Overlay"      "e5be9dbe-b0fc-4e30-aaf5-ac4bdcd863a7" 
"ANOTHEROVERLAYTEST"     "850ebf6b-3651-4cf1-aae1-5a6c03fad61b" 

我在这一个绝对的初学者,任何见解是非常赞赏。 谢谢!

回答

1

我会建议使用paste由线到你的两个变量线面相结合:

paste <(printf 'Overlay\n%s\n' "$name") <(printf 'UUID\n%s\n' "$uuid") | column -t 

两个过程替代用于传递每个变量的内容与他们的头衔一起。

+0

非常感谢Fenech先生!你的建议就像一个魅力。在我发布之后,我意识到我使用的命令不是单行条目。 – techiejs