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`'
バックティックが評価されたいと考えて評価されないことを警告するので、同じ警告が生成される。