簡體   English   中英

為什么 jq 在 bash 變量中不起作用

[英]why is jq not working inside bash variable

我有以下代碼

#/bin/bash
set -e
set -x

requestResponse=$(ssh jump.gcp.xxxxxxx """source dev2 spi-dev
kubectl get pods -o json | jq '.items[] |select(.metadata.name[0:3]=="fea")'  | jq .status.podIP
2>&1""")
echo $requestResponse

在上面的代碼source dev2 spi-dev意味着我們已經移動到 dev2 集群內的 spi-dev 命名空間。 kubectl get pods -o json | jq '.items[] |select(.metadata.name[0:3]=="fea")' | jq.status.podIP 2>&1""") kubectl get pods -o json | jq '.items[] |select(.metadata.name[0:3]=="fea")' | jq.status.podIP 2>&1""")表示打印以 fea 開頭的 pod 的 ip 地址。如果我手動執行 kubectl 命令有效。我也嘗試過 escaping fea like \"fea\"

這些三重引號"""沒有按您的預期工作。嘗試像這樣更改它:

ssh jump.gcp.xxxxxxx << EOF
source dev2 spi-dev
kubectl get pods -o json             | \
jq '.items[]                         | \
select(.metadata.name[0:3]=="fea")'  | \
jq .status.podIP 2>&1
EOF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM