Posix

目前目錄的 POSIX One-Liner - 試圖使其通過 ShellCheck

  • June 16, 2022

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呢?還是直接忽略?

是的,您可以指定一個帶引號的空值:

dir=$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)

正如 ShellCheck 所建議的:

(對於空字元串,使用 var=’’ … )

引用自:https://unix.stackexchange.com/questions/706407