Posix
目前目錄的 POSIX One-Liner - 試圖使其通過 ShellCheck
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=’’ … )