我想在shell脚本中为以下aws命令分配一个变量。 如果命令成功执行,我想将输出分配给S3_BUCKET_REGION。例如:S3_BUCKET_REGION = us-east-1。
S3_BUCKET_REGION=$( aws s3api get-bucket-location --bucket ${TF_STATE_S3_BUCKET} | jq -r '.LocationConstraint // "us-east-1"' )
但是,如果存储桶不存在,则上述命令的错误是“调用GetBucketLocation操作时发生错误(NoSuchBucket):指定的存储桶不存在”
我想捕获此错误并在脚本中回显它。
因此,如果命令成功运行,我想分配一个变量。否则,我想回显错误。如何为此执行条件语句?
答案 0 :(得分:1)
通常,命令将输出发送到STDOUT,将错误发送到STDERR。 $()仅捕获STDOUT,因此您应该通过将STDERR重定向到STDOUT来完成命令
MYVAR=$( blablabla 2>&1 )