本次讨论中 mklement0 的一行关于 POSIX 兼容脚本和获取完整路径的内容。 ShellCheck 失败。删除该空间会导致其不再工作。
https://stackoverflow.com/questions/29832037/how-to-get-script-directory-in-posix-sh
dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
^-- SC1007: Remove space after = if trying to assign a value (for empty string, use var='' ... ).
删除CDPATH=
ShellCheck 通过的结果,它似乎仍然有效,但是......
CDPATH= 前缀取代了原始命令中的 > /dev/null : $CDPATH 设置为空字符串,以确保 cd 不会回显任何内容。
看来是需要的。那么,有什么办法可以让这个通过ShellCheck呢?或者直接忽略它?
答案1
是的,您可以指定带引号的空值:
dir=$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)
正如 ShellCheck 所建议的:
(对于空字符串,请使用 var='' ... )