我应该双引号这些参数扩展吗?

我应该双引号这些参数扩展吗?

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"

只是内部双引号。我的意思是,里面$(…)已经在外面加了双引号"$(…)"

相关内容