如何明确表达故意分词?

2024-03-03

我在跑外壳检查 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 -aBash 中的内容以及如何针对非 Bash shell 语法的特定情况禁用此代码检查。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何明确表达故意分词? 的相关文章

随机推荐