【发布时间】:2021-05-14 17:20:28
【问题描述】:
当我为下一行脚本运行codacy-analysis-cli analyze 命令时:
if [[ "$lexer_date" > "$lexer_ts_date" ]]; then
generate_grammar
fi
我收到了下一个警告:
Found [Warning] `In POSIX sh, [[ ]] is undefined.` in scripts/grammar.sh:20 (shellcheck_SC2039)
我该如何解决?
【问题讨论】:
-
不要将
[[与/bin/sh一起使用?警告是真的。[[是sh标准未指定的功能,因此不能保证/bin/sh提供它。如果您想要仅在 ksh 或 bash 等扩展 shell 中添加的功能,则需要使用 ksh 或 bash 等扩展 shell。 -
除此之外,不清楚你想要什么样的答案。
-
...也就是说,您可能会发现What is the difference between
[and[[in bash? 很有用。 -
谢谢@CharlesDuffy。我看看你的链接。我只想修复警告并寻找替代方案。
-
最好的替代方法是停止尝试使用
/bin/sh,如果您需要它不提供的功能,而是改用 ksh 或 bash。[[的存在是有原因的(因为它提供的许多功能超过[在没有语法扩展的情况下是不可能的,并且[需要像常规命令一样被解析,而不是像语法那样)。
标签: bash shell analyzer codacy shellcheck