Alterar ${MANPATH}:${HOME}/share/man
para "'manpath':$HOME/share/man"
.
Seu arquivo ~/.cshrc
contém (e na verdade consiste inteiramente em) um comando cuja intenção é aumentar a lista de diretórios nos quais o comando man
procurará páginas de manual:
setenv MANPATH ${MANPATH}:${HOME}/share/man
No entanto, essa não é uma maneira geralmente correta de conseguir isso e não funciona para sua situação, porque a variável de ambiente MANPATH
não existe. Isso é o que produz sua mensagem de erro. 1
O comando manpath
, que você encontrou faz funciona, automaticamente faz a coisa certa. Ele verifica se existe uma variável de ambiente MANPATH
e a utiliza se existir (e não está vazia). Mas se não houver tal variável de ambiente (ou ela existir, mas estiver em branco), manpath
consultará o arquivo de configuração /etc/manpath.config
para determinar qual deve ser o caminho padrão e o utiliza. Quando você define a variável de ambiente MANPATH
, as entradas nesse arquivo não são mais usadas automaticamente, portanto, você é responsável por garantir que MANPATH
as contenha, exceto no caso incomum que você não as deseja. < strong> 2
Felizmente, isso é fácil, porque você pode simplesmente usar substituição de comando para incluir a saída do comando manpath
no valor atribuído à variável MANPATH
. Substitua a linha ~/.cshrc
contida atualmente por:
setenv MANPATH "'manpath':$HOME/share/man"
Backticks ( '
'
) executam a substituição de comandos em csh
e tcsh
. Em shells no estilo Bourne como bash
, há também uma sintaxe $(
)
para substituição de comando, que geralmente é preferível a backticks, mas que não se aplica a shells C . Você não pode usar a sintaxe $(
)
com csh
/ tcsh
; eles não suportam isso.
1 No entanto, como diz o Steeldriver, você provavelmente pode continuar sem corrigir este problema. A maioria dos scripts não usa o comando man
, embora alguns possam. Mesmo que o seu script instale software que inclua páginas de manual, provavelmente ele não consultará o caminho atual para descobrir onde colocá-las. É claro que, se a documentação diz que sim, então isso substitui esse palpite. Eu sugiro que você corrija esse problema, mas você pode provavelmente prosseguir sem fazer isso.
2 O comando man
usa o mesmo procedimento para decidir onde procurar por páginas de manual, possivelmente chamando manpath
. Veja caminho (5) ( man 5 manpath
), que diz, "Se a variável de ambiente $ MANPATH já estiver definida, as informações contidas em /etc/manpath.config não irão sobrescrevê-lo." Eu confirmei, testando, que esta é a caso. Por exemplo, a execução de env MANPATH=. man tcsh
do seu diretório pessoal dirá No manual entry for tcsh
.