sdkman está faltando comando menos-R em nixos

1

Instalei recentemente o sdkman.io no nixos e vi alguns erros estranhos. Depois de instalar também, jdk e less, ainda estou recebendo este erro ao executar sdk list

less -R: command not found

Mas eu posso executar less do mesmo terminal. Como posso consertar isso?

    
por John Mercier 24.03.2016 / 02:35

1 resposta

3

Você precisa garantir que haja um caractere de espaço sem escape entre less e seus argumentos.

A partir da mensagem de erro, você pode ver que a string inteira tratada com shell less -R é um comando, portanto, o caractere de espaço em sua cadeia de execução de comando é escapado. Provavelmente porque foram usadas citações em algum lugar (menos provável com backslash).

Olhando o código-fonte do sdkman-cli, parece muito provável que você tenha export PAGER="less -R" no seu .bashrc ou .bash_profile .

Nesse caso, linha 33 ou 35 de src/main/bash/sdkman-utils.sh gerará esse mesmo erro. Parece ser esperado, pois a variável de ambiente PAGER é usada para definir o arquivo executável e presume-se que ele não contenha outras opções (parece uma prática comum em vez de padrão).

Para configurar opções para less , uma variável de ambiente LESS deve ser usada , portanto, na sua caso as seguintes configurações devem ser aplicadas:

export PAGER=less
export LESS="-R"

Como exercício, você pode verificar esta mensagem de erro em qualquer sistema, digitando o seguinte no shell:

"less -R"
    
por 24.03.2016 / 02:43

Tags