Mic*_*l J 9 shell bash shell-script shellcheck
我正在使用 AWS CLI 编写 bash 脚本,并shellcheck
给出了一个我认为不正确的错误。我想弄清楚为什么它会吹毛求疵。
这是代码和错误消息:
for server in $(${aws} ec2 describe-instances --query 'Reservations[].Instances[][].{Name: Tags[?Key==`Name`].Value[] | [0]}' --filters "Name=tag:Name,Values=${server_name}*" --output text);
^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.
Run Code Online (Sandbox Code Playgroud)
我无法让代码在 SO 编辑器中正确排列,但^--
指向*
代码中的 。这部分:
"Name=tag:Name,Values=${server_name}*"
Run Code Online (Sandbox Code Playgroud)
该错误提供了一个指向 ShellCheck 文档的链接以供参考,但是当我仔细检查所有内容时,看起来我符合要求。:D
我猜这*
是在扔东西,我知道我可以通过这样做来解决这个问题,shellcheck -e SC2016
但我真的很想知道是什么导致了 shellcheck 出现了鲤鱼。
有任何想法吗?
Jos*_*ica 12
这是一种误报,但它不是您认为的那样。它与 无关*
,也没有指向我。`Name`
对单引号内的内容感到不安。例如,echo '`Name`'
产生相同的警告,因为它认为您想要评估反引号,所以它警告您它们不会被评估。