我是撰寫 bash 腳本的新手,在將變數傳遞給 AWS CLI 命令時遇到了問題。我確信有一個簡單的解決方法,我只是無法理解這種語法。以下是我到目前為止的腳本:
#!/bin/bash
CONFIG_RECORDER=`aws configservice describe-configuration-recorders
export CONFIG_RECORDER_NAME=$(jq -r '.ConfigurationRecorders[].name' <<<"$CONFIG_RECORDER")
sudo yum -y install jq
aws configservice delete-configuration-recorder --configuration-recorder-name $CONFIG_RECORDER_NAME
此腳本的目的是使用 aws cli 命令洗掉配置記錄器。我收到一個錯誤aws: error: argument --configuration-recorder-name: expected one argument
我有一個變數,$CONFIG_RECORDER_NAME被指定為引數,但由于某種原因它沒有讀取。有關如何將此變數傳遞給此命令的任何建議都會有所幫助。
uj5u.com熱心網友回復:
aws configservice describe-configuration-recorders如果呼叫回傳單個配置記錄器名稱,則以下內容似乎可以正常作業:
#!/bin/bash
sudo yum -y install jq
CONFIG_RECORDER=`aws configservice describe-configuration-recorders`
# echo "CONFIG_RECORDER="$CONFIG_RECORDER
CONFIG_RECORDER_NAME=$(jq -r '.ConfigurationRecorders[].name' <<<"$CONFIG_RECORDER")
# echo "CONFIG_RECORDER_NAME="$CONFIG_RECORDER_NAME
aws configservice \
delete-configuration-recorder \
--configuration-recorder-name $CONFIG_RECORDER_NAME
實際上沒有必要使用jq. 你可以簡單地使用:
#!/bin/bash
CONFIG_RECORDER_NAME=`aws configservice describe-configuration-recorders --query 'ConfigurationRecorders[0].name' --output text`
aws configservice \
delete-configuration-recorder \
--configuration-recorder-name $CONFIG_RECORDER_NAME
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/457753.html
上一篇:LinuxIP監控工具
