Mau: modificador em $ (/). aparece sempre após o login e criando uma nova tela no Linux

O seguinte erro sempre aparece após o login e criando uma nova tela no Linux:

Bad : modifier in $ (/). 

Recentemente adicionei alguns caminhos e não sei se estão relacionados.

Para os caminhos, lembro que adicionei coisas a $PATH e .bashrc.

Como posso corrigi-lo para que não apareça novamente?

Obrigado!

Comentários

  • Não ' não sabemos se ' s relacionados também. Você poderia adicionar o que mudou à pergunta, por favor?
  • “Você adicionou alguns caminhos“ significa que você adicionou coisas a $PATH? Você mudou seu .bashrc? Você pode postar .profile e .bashrc?
  • Consulte stackoverflow.com/questions/8805839/bad-modifier-in
  • Palpite: você adicionou um caminho com $ nele e o shell interpreta $ como um caractere especial.
  • Lembro que adicionei coisas a $ PATH e .bashrc. Como posso ver meu .profile e .bashrc? Mark, eu vi essa postagem e tentei algo como: setenv PATH $ {PATH}: /, mas não ' não funcionou.

Resposta

Você não usa bash como shell, mas (t)csh:

> csh % PATH="${PATH:/blah}" Bad : modifier in $ (/). 

Se você deseja usar bash em vez disso, provavelmente pode executar chsh ou peça ao administrador do sistema para alterá-lo para você.

Em bash, se você desalinhar o : e coloque-o entre as chaves { } significaria que um modificador deve ser aplicado à variável. Em csh as chaves não são necessárias para aplicar um modificador e você realmente precisaria adicionar chaves se não deseja que : sinalize que um modificador o está seguindo.

Comentários

  • Isso é um palpite ou um fato? É ' difícil de dizer.
  • @Wildcard bash tem mensagens de erro muito diferentes; diria: ' erro de sintaxe: operando esperado (o token de erro é " / blah ") '. Esclareci minha resposta um pouco mais.

Resposta

Você precisará escapar “:”. Portanto, seu arquivo cshrc deve ser semelhante a

setenv PATH $PATH\:/path/to/add 

Depois disso, você pode fazer:

source ~/.cshrc 

para aplicar alterações ao terminal atual. Ele será aplicado automaticamente na próxima vez que você abrir um novo terminal.

Comentários

  • Uma sintaxe mais correta em (t) csh seria setenv PATH ${PATH:q}:/path/to/add. Ou melhor set path = ($path:q /path/to/add) ou ainda melhor em tcsh: set -f path = ($path:q /path/to/add) para manter os elementos exclusivos.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *