在 bash 脚本中将变量传递给 aws cli 命令
Passing variables to aws cli command in bash script
我是编写 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
,被指定为参数,但由于某种原因它没有读取。有关如何将此变量传递给此命令的任何建议都会有所帮助。
如果 aws configservice describe-configuration-recorders
调用 returns 单个配置记录器名称,则以下内容似乎可以正常工作:
#!/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
我是编写 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
,被指定为参数,但由于某种原因它没有读取。有关如何将此变量传递给此命令的任何建议都会有所帮助。
如果 aws configservice describe-configuration-recorders
调用 returns 单个配置记录器名称,则以下内容似乎可以正常工作:
#!/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