Nixos
sdkman 在 nixos 上缺少 less-R 命令
我最近在 nixos 上安裝了 sdkman.io 並遇到了一些奇怪的錯誤。在安裝了 which、jdk 和 less 之後,我在執行時仍然收到此錯誤
sdk list
less -R: command not found
但我可以
less
從同一個終端執行。我怎樣才能解決這個問題?
您需要確保在
less
其參數之間存在未轉義的空格字元。從錯誤消息中,您可以看到 shell 將整個字元串
less -R
視為命令,因此命令執行字元串中的空格字元被轉義。可能是因為在某處使用了引號(不太可能使用反斜杠)。查看 sdkman-cli 原始碼,
export PAGER="less -R"
您的.bashrc
或.bash_profile
.在這種情況下,第 33 行或第 35
src/main/bash/sdkman-utils.sh
行將產生這個錯誤。這似乎是預期的,因為PAGER
環境變數用於定義執行檔,並且假定它不包含其他選項(看起來像是一種常見做法而不是標準)。應使用
less
設置環境變數的選項,因此在您的情況下應應用以下設置:LESS
export PAGER=less export LESS="-R"
作為練習,您可以通過在 shell 中鍵入以下內容來驗證您在任何系統上是否收到此錯誤消息:
"less -R"