Json
使用 jq 回顯文本並執行命令
我有一個將 json 發送到標準輸出的命令,如下所示:
foo inf –db
{ "Name": "A rose by any any other", "Config": { "DBHost": "abc.efg.us-east-1.rds.amazonaws.com", "DBName": "bsghshsgh", "DBUser": "bshshs", "DBPassword": "secret" } }
我想將 DBPasswod 的內容回顯到螢幕上,然後像這樣使用其他參數執行 pgsql 命令。到目前為止,我可以像這樣連接一個字元串以發送到標準輸出:
foo inf –db | jq ‘“密碼:” + .Config.DBPassword + “; psql -h " + .Config.DBHost + " -U " + .Config.DBUser + " " + .Config.DBName’
如何將密碼回顯到標準輸出並執行 pgsql 命令?
您的 JSON 格式不正確。此外,您可能應該重新考慮這種方法的合理性。但如果你堅持這樣做,你可能會嘗試這樣的事情:
foo inf --db | \ jq -r '.Config | .DBPassword, .DBHost, .DBUser, .DBName' | \ { read -r PGPASSWORD read -r host read -r user read -r db psql -h "$host" -U "$user" "$db" }
(參見libpq-envars for
PGPASSWORD
)。