これらのパラメータ拡張を二重引用符で囲む必要がありますか?

これらのパラメータ拡張を二重引用符で囲む必要がありますか?

shellcheck は次の警告を表示します。

In myscript line 38:
        echo -e "blah/blah\n$(cat ${tmpdir}/${filename}.jpdf)" > "$tmpdir"/"$filename".jpdf
                                            ^-- SC2086: Double quote to prevent globbing and word splitting.

このコマンドの目的は、ファイルの先頭に行を挿入することです${tmpdir}/${filename}.jpdf

shellcheckの警告は意味がありますか?なぜ?

パラメータ全体を二重引用符で囲みました。二echo -e重引用符で囲む必要がありますか?${tmpdir}${filename}

ありがとうございます。

ベストアンサー1

はい、次の分割とワイルドカードを避けるには、次の手順を実行します。

echo -e "blah/blah\n$(cat "${tmpdir}/${filename}.jpdf")" > "$tmpdir/$filename.jpdf"

内部二重引用符を使用してください。私の言葉は、$(…)内部と外部に二重引用符があるということです。"$(…)"

おすすめ記事