現在のディレクトリのPOSIX One-Liner - ShellCheckを通過しようとしました

現在のディレクトリのPOSIX One-Liner - ShellCheckを通過しようとしました

POSIX準拠のスクリプトとフルパスのインポートに関するこのディスカッションのmklement0の1行。 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

はい、引用符付きのNULL値を指定できます。

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

ShellCheckが提案したように:

(空の文字列にはvar = '' ...を使用してください。)

おすすめ記事