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"
只是内部双引号。我的意思是,里面$(…)
已经在外面加了双引号"$(…)"