Dårligt: modifikator i $ (/). vises hver gang efter login og oprettelse af en ny skærm i Linux

Følgende fejl vises altid hver gang efter login og oprettelse af en ny skærm i Linux:

Bad : modifier in $ (/). 

For nylig tilføjede jeg nogle stier, og jeg ved ikke, om det er relateret.

For stierne husker jeg, at jeg tilføjede ting til $PATH og .bashrc.

Hvordan kunne jeg rette det, så det ikke vises igen?

Tak!

Kommentarer

  • Vi ved ikke ' om det ' er relateret enten. Kan du tilføje det, du ændrede til spørgsmålet, tak?
  • “Du har tilføjet nogle stier” betyder, at du har føjet ting til $PATH? Har du ændret din .bashrc? Kan du sende din .profile og .bashrc?
  • Se stackoverflow.com/questions/8805839/bad-modifier-in
  • Vilde gæt: du tilføjede en sti med $ i, og skallen fortolker $ som et specialtegn.
  • Jeg husker, at jeg tilføjede ting til $ PATH og .bashrc. Hvordan kunne jeg se min .profil og .bashrc? Mark, jeg har set dette indlæg og forsøgt at gøre noget som: setenv PATH $ {PATH}: /, men fungerede ikke '.

Svar

Du bruger ikke bash som din shell, men (t)csh:

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

Hvis du vil bruge bash i stedet, kan du sandsynligvis køre chsh eller bed din systemadministrator om at ændre det for dig.

I bash, hvis du skulle forkert justere : og placer det i de krøllede seler { } det ville betyde, at en modifikator skal anvendes på variablen. I csh er de krøllede seler ikke nødvendige for at anvende en modifikator, og du ville faktisk have brug for at tilføje krøllede seler, hvis du ikke vil have, at : signalerer, at en modifikator følger den.

Kommentarer

  • Er dette et gæt eller en kendsgerning? Det ' er svært at fortælle.
  • @Wildcard bash har meget forskellige fejlmeddelelser; det ville sige: ' syntaksfejl: forventet operand (fejltoken er " / blah ") '. Jeg afklarede mit svar lidt mere.

Svar

Du bliver nødt til at flygte “:”. Så din cshrc-fil skal se ud,

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

Herefter kan du gøre

source ~/.cshrc 

for at anvende ændringer til den aktuelle terminal. Den anvendes automatisk næste gang du åbner en ny terminal.

Kommentarer

  • En mere korrekt syntaks i (t) csh ville være setenv PATH ${PATH:q}:/path/to/add. Eller bedre set path = ($path:q /path/to/add) eller endnu bedre i tcsh: set -f path = ($path:q /path/to/add) for at holde elementerne unikke.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *