ShellCheckは実際には二重引用符で囲まれた表現ではないと文句を言います。なぜですか?

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.

SOエディタでコードを正しく整列させることはできませんが、コードを^--指します。*この部分:

"Name=tag:Name,Values=${server_name}*"

エラーは以下を提供します。ShellCheckドキュメントリンクちなみに、すべてを再確認してみると、規制に従うように見えました。 :D

これが問題を引き起こしているようです*。これは問題を解決できることを知っていますが、shellcheck -e SC2016シェルチェック鯉の原因が何であるかを知りたいです。

どんなアイデアがありますか?

ベストアンサー1

これは間違った肯定ですが、あなたが考えるものとは異なります。それはそれとは何の関係もなく、*それは私に指摘されていません。`Name`一重引用符内の内容については怒っています。例えば、echo '`Name`'バックティックが評価されたいと考えて評価されないことを警告するので、同じ警告が生成される。

おすすめ記事