Schlecht: Modifikator in $ (/). wird immer dann angezeigt, wenn nach dem Anmelden und Erstellen eines neuen Bildschirms unter Linux

Der folgende Fehler tritt immer dann auf, wenn nach dem Anmelden und Erstellen eines neuen Bildschirms unter Linux:

Bad : modifier in $ (/). 

Kürzlich habe ich einige Pfade hinzugefügt und ich weiß nicht, ob es damit zusammenhängt.

Für die Pfade erinnere ich mich, dass ich $PATH und .bashrc.

Wie kann ich das korrigieren, damit es nicht wieder angezeigt wird?

Vielen Dank!

Kommentare

  • Wir ' wissen nicht, ob es ist entweder verwandt. Könnten Sie bitte hinzufügen, was Sie an der Frage geändert haben?
  • „Sie haben einige Pfade hinzugefügt“ bedeutet, dass Sie $PATH Inhalte hinzugefügt haben? Haben Sie Ihre .bashrc geändert? Können Sie Ihre .profile und .bashrc veröffentlichen?
  • Siehe stackoverflow.com/questions/8805839/bad-modifier-in
  • Wilde Vermutung: Sie haben einen Pfad mit $ und der Shell hinzugefügt interpretiert $ als Sonderzeichen.
  • Ich erinnere mich, dass ich $ PATH und .bashrc Dinge hinzugefügt habe. Wie kann ich mein .profile und .bashrc anzeigen? Mark, ich habe diesen Beitrag angesehen und versucht, Folgendes zu tun: setenv PATH $ {PATH}: /, aber ' hat nicht funktioniert.

Antwort

Sie verwenden bash nicht als Shell, sondern (t)csh:

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

Wenn Sie stattdessen bash verwenden möchten, können Sie wahrscheinlich chsh oder bitten Sie Ihren Systemadministrator, dies für Sie zu ändern.

In bash, wenn Sie die : und platzieren Sie es in geschweiften Klammern. { } Dies würde bedeuten, dass ein Modifikator ist auf die Variable anzuwenden. In csh werden die geschweiften Klammern nicht benötigt, um einen Modifikator anzuwenden, und Sie müssten tatsächlich geschweifte Klammern hinzufügen, wenn Sie dies nicht tun möchte, dass die : signalisiert, dass ein Modifikator ihm folgt.

Kommentare

  • Ist dies eine Vermutung oder eine Tatsache? ' ist schwer zu sagen.
  • @Wildcard bash hat sehr unterschiedliche Fehlermeldungen. es würde sagen: ' Syntaxfehler: Operand erwartet (Fehlertoken ist " / blah ") '. Ich habe meine Antwort noch etwas präzisiert.

Antwort

Sie müssen entkommen „:“. Ihre cshrc-Datei sollte also wie folgt aussehen:

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

Danach können Sie

source ~/.cshrc 

, um Änderungen am aktuellen Terminal vorzunehmen. Es wird automatisch angewendet, wenn Sie das nächste Mal ein neues Terminal öffnen.

Kommentare

  • Eine korrektere Syntax in (t) csh wäre setenv PATH ${PATH:q}:/path/to/add. Oder besser set path = ($path:q /path/to/add) oder noch besser in tcsh: set -f path = ($path:q /path/to/add), um die Elemente eindeutig zu halten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.