Dåligt: modifierare i $ (/). visas varje gång efter inloggning och skapande av en ny skärm i Linux

Följande fel visas alltid varje gång efter inloggning och skapande av en ny skärm i Linux:

Bad : modifier in $ (/). 

Nyligen lade jag till några vägar och jag vet inte om det är relaterat.

För vägarna kommer jag ihåg att jag lade till saker till $PATH och .bashrc.

Hur kunde jag korrigera det så att det inte visas igen?

Tack!

Kommentarer

  • Vi vet inte ' om det ' är relaterade antingen. Kan du lägga till det du ändrade till frågan snälla?
  • ”Du har lagt till några sökvägar” betyder att du har lagt till saker i $PATH? Ändrade du din .bashrc? Kan du lägga upp din .profile och .bashrc?
  • Se stackoverflow.com/questions/8805839/bad-modifier-in
  • Wild gissning: du lade till en sökväg med $ i och skalet tolkar $ som ett specialtecken.
  • Jag kommer ihåg att jag lade till saker i $ PATH och .bashrc. Hur kunde jag se min .profil och .bashrc? Mark, jag har sett det inlägget och försökt göra något liknande: setenv PATH $ {PATH}: /, men ' t fungerade.

Svar

Du använder inte bash som ditt skal, utan (t)csh:

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

Om du istället vill använda bash kan du förmodligen köra chsh eller be din systemadministratör att ändra det åt dig.

I bash, om du skulle feljustera : och placera den i de lockiga hakparenteserna { } det skulle betyda att en modifier ska tillämpas på variabeln. I csh behövs inte de lockiga hakparenteserna för att använda en modifierare och du skulle faktiskt behöva lägga till lockiga hakparenteser om du inte vill att : ska signalera att en modifierare följer den.

Kommentarer

  • Är detta en gissning eller ett faktum? Det är ' svårt att säga.
  • @Wildcard bash har mycket olika felmeddelanden; det skulle säga: ' syntaxfel: operand förväntas (fel token är " / blah ") '. Jag klargjorde mitt svar lite mer.

Svar

Du måste fly ”:”. Så din cshrc-fil ska se ut,

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

Efter detta kan du göra

source ~/.cshrc 

för att tillämpa ändringar på den aktuella terminalen. Det tillämpas automatiskt nästa gång du öppnar en ny terminal.

Kommentarer

  • En mer korrekt syntax i (t) csh skulle vara setenv PATH ${PATH:q}:/path/to/add. Eller bättre set path = ($path:q /path/to/add) eller ännu bättre i tcsh: set -f path = ($path:q /path/to/add) för att hålla elementen unika.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *