我在跑外壳检查 https://www.shellcheck.net在我的脚本上,经常收到此警告(在本例中这是正确的,因为cd foo bar baz
没有意义):
cd ${SOME_DIR} || exit 1
^-- SC2046: Quote this to prevent word splitting.
这一警告主要是一个好的警告。当变量包含多个参数时出现一个异常:
gcc ${OPTIONS} ...
^-- SC2046: Quote this to prevent word splitting.
是否有一个约定可以更明确地进行有意的分词,从而可能避免此 shellcheck 警告?
当不打算分割时,只需添加双引号即可:
cd "${SOME_DIR}" || exit 1
执行显式拆分为数组:
read -ra gcc_options <<<"${OPTIONS}"
gcc "${gcc_options[@]}"
或者对下一条语句禁用 shellcheck,表明您已审查该操作是否符合意图:
# shellcheck disable=SC2046 # Intended splitting of OPTIONS
gcc ${OPTIONS}
有时Reading The Fine M手动是比在这里询问更好的选择:
Shellcheck 提供了其 Wiki 的链接,以获取代码检查警告。这SC2046 引用此内容以防止分词 https://github.com/koalaman/shellcheck/wiki/Sc2046维基条目已经提到了使用read -a
Bash 中的内容以及如何针对非 Bash shell 语法的特定情况禁用此代码检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)