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"

관련 정보