如何将包含 ` ` 的命令分配给 bash shell 脚本中的变量?

郑氏海燕

我想编写一个 bash 脚本,用于在 aws 中从目标组自动注册和注销目标。

脚本是这样的:

#!/bin/bash
target_group_name=$1
instance_Id=$2
target_group_arn="$(aws elbv2 describe-target-groups --query 'TargetGroups[?contains(TargetGroupName, `$1`)].TargetGroupArn' --output text)"
echo -n "Enter the option you want to do (enter 1 for register and enter 2 for deregister): "
read OPTION
case $OPTION in 
  1)
    if register_output=$(aws elbv2 register-targets --target-group-arn '$target_group_arn' --targets Id="$2"); 
    then
      echo "Registering instance into target group. Please wait for 5 minutes registration progress finished"
    else
      echo "!!!! ERROR !!!!"
    fi
    ;;
  2) 
    if deregister_output=$(aws elbv2 deregister-targets --target-group-arn '$target_group_arn' --targets Id="$2"); 
    then
      echo "Deregistering instance into target group. Please wait for 5 minutes registration progress finished"
    else
      echo "!!!! ERROR !!!!"
   fi
    ;;
  *)
    echo "unknown option"
    ;;
esac

但是,当我运行脚本时,没有找到 arn。

我尝试打印出$1(S1 在左操作数符号内)。但是,似乎bash脚本不理解,它什么也没打印出来。

你能帮我弄清楚我的脚本有什么问题吗?或者我如何重现我的查询以获取目标组的 arn 以便我可以将它传递给我的命令?

太感谢了!

郑氏海燕

因为我刚刚找到了我的问题的答案,所以我会在这里为感兴趣的人发布我的答案并关闭我的帖子。

非常感谢你们帮助我!:D

#!/bin/bash
profile=$1
target_group_name=$1
instance_id=$2

target_group_arn="$(aws elbv2 describe-target-groups --query 'TargetGroups[].[TargetGroupArn]' --names "$2" --profile "$1" --output text)"

echo -n "Enter the option you want to do (enter 1 for register and enter 2 for deregister): "
read OPTION
case $OPTION in 
  1)
    if register_output=$(aws elbv2 register-targets --target-group-arn "$target_group_arn" --targets Id="$2"); 
    then
      echo "Registering instance into target group. Please wait for 5 minutes registration progress finished"
    else
      echo "!!!! ERROR !!!!"
    fi
    ;;
  2) 
    if deregister_output=$(aws elbv2 deregister-targets --target-group-arn "$target_group_arn" --targets Id="$2"); 
    then
      echo "Deregistering instance into target group. Please wait for 5 minutes registration progress finished"
    else
      echo "!!!! ERROR !!!!"
   fi
    ;;
  *)
    echo "unknown option"
    ;;
esac

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将 memcache 命令的输出分配给 shell/bash 脚本中的变量

如何将命令的输出分配给shell变量?

如何将Bash命令的输出分配给变量?

将命令输出分配给bash中的变量

在bash脚本中,如何在命令中使用变量并分配给新变量?

将jps -vl命令的输出分配给shell脚本中的变量

无法将命令输出分配给bash脚本中的变量

将“ awk”或“ nawk”分配给shell脚本中的变量

将命令输出分配给变量(BASH)

将终端命令分配给bash变量时出错

如何将 shell 命令的输出分配给所有 make 目标的 Makefile 变量?

如何将此命令的输出分配给Shell中的变量?

如何使用 shell 脚本将值分配给变量

如何将日期分配给shell变量?

BASH脚本:如何将命令输出的每一行分配给数组中的值?

将groovy变量分配给shell命令中的进程ID

将超时命令分配给脚本中的变量

将管道中单个命令的 stderr 分配给 Bash 中的变量

将命令输出的一部分分配给 bash 中的变量?

无法将嵌套命令的输出分配给bash中的变量

将Shell脚本执行结果分配给变量

Shell脚本将sql查询分配给变量

Shell脚本-无法将随机值分配给变量

如何通过Java代码将值分配给Shell脚本中的变量

bash 脚本:嵌套命令的结果未分配给变量

bash脚本将输出分配给变量失败

如何将字符串列分配给变量并在 Bash 脚本的输出中引用它

如何将格式化日期分配给 bash 脚本变量

在bash shell脚本中将值分配给var失败