sdkman には nixos に対する less-R コマンドはありません。

sdkman には nixos に対する less-R コマンドはありません。

私は最近nixosにsdkman.ioをインストールしましたが、奇妙なエラーが発生しました。 jdk とそれ以下のバージョンもインストールした後でも実行すると、このエラーが発生し続けます。sdk list

less -R: command not found

しかし、less同じ端末で実行できます。この問題をどのように解決できますか?

答え1

lessそのエントリと引数の間にエスケープされていない空白文字があることを確認する必要があります。

エラーメッセージが示すように、シェルは文字列全体をコマンド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"

練習では、シェルに次のように入力して、すべてのシステムでこのエラーメッセージが表示されることを確認できます。

"less -R"

関連情報