在 AWS CLI 描述实例的 null return 上显示错误消息

Show error message on null return for AWS CLI describe-instances

我有一个 bash 脚本根据用户的参数调用各种实例的 IP。现在,如果他们的查询与脚本不匹配,那么 return 根本就没有任何内容,甚至 null 也没有。我很想加入某种错误处理来提示用户重试。这可以是从内置 AWS 函数到自定义错误消息的任何内容,我不挑剔。

我的脚本如下;

#!/usr/bin/env bash
set -e

#READ ARGUMENTS PASSED IN - expects stack name
if [ "$#" != 1 ]; then
    echo "Illegal number of parameters.  Expecting 1: stack name"
    exit 1
fi

name=

aws ec2 describe-instances --query "Reservations[].Instances[].[PublicIpAddress,Tags[?Key=='Name'].Value]" --filter Name=tag:Name,Values=${name} --output text

如果成功,我会得到类似

的东西
00.00.00.000
name-of-instance

但如果失败,我什么也得不到。

如果 aws describe-instances returns 没有匹配项,是否有提示用户或以其他方式显示错误消息的方法?

首先像这样将输出捕获到一个变量中:

output=$(aws ec2 describe-instances --query "Reservations[].Instances[].[PublicIpAddress,Tags[?Key=='Name'].Value]" --filter Name=tag:Name,Values=${name} --output text)

然后检查output的内容。如果有什么东西就把它回显到屏幕上。如果没有,请显示您的自定义错误消息。

output=`aws ec2 describe-instances --query "Reservations[].Instances[].[PublicIpAddress,Tags[?Key=='Name'].Value]" --filter Name=tag:Name,Values=${name} --output text`

if [ -n "$output" ]; then
    echo "$output"
else
    echo "No such instance $name exists"
fi