Cattivo: modificatore in $ (/). appare ogni volta dopo il login e la creazione di una nuova schermata in Linux

Il seguente errore appare sempre ogni volta che dopo il login e la creazione di una nuova schermata in Linux:

Bad : modifier in $ (/). 

Recentemente ho aggiunto alcuni percorsi e non so se sia correlato.

Per i percorsi, ricordo di aver aggiunto cose a $PATH e .bashrc.

Come posso correggerlo in modo che “non venga visualizzato di nuovo?

Grazie!

Commenti

  • Non ' sappiamo se ' sono correlati. Potresti aggiungere ciò che hai modificato alla domanda, per favore?
  • “Hai aggiunto alcuni percorsi” significa che hai aggiunto elementi a $PATH? Hai cambiato .bashrc? Puoi pubblicare i tuoi .profile e .bashrc?
  • Vedi stackoverflow.com/questions/8805839/bad-modifier-in
  • Indovina: hai aggiunto un percorso con $ e la shell interpreta $ come un carattere speciale.
  • Ricordo di aver aggiunto cose a $ PATH e .bashrc. Come posso visualizzare i miei .profile e .bashrc? Mark, ho visto quel post e ho provato a fare qualcosa del tipo: setenv PATH $ {PATH}: /, ma ' t ha funzionato.

Risposta

Non utilizzi bash come shell, ma (t)csh:

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

Se desideri utilizzare bash, probabilmente puoi eseguire chsh o chiedi al tuo amministratore di sistema di modificarlo per te.

In bash, se dovessi disallineare : e inseriscilo tra parentesi graffe { } significherebbe che un modificatore deve essere applicato alla variabile. In csh le parentesi graffe non sono necessarie per applicare un modificatore e in realtà sarà necessario aggiungere le parentesi graffe se non desidera che : segnali che un modificatore lo sta seguendo.

Commenti

  • È unipotesi o un fatto? È ' difficile da dire.
  • @Wildcard bash ha messaggi di errore molto diversi; verrebbe visualizzato: ' errore di sintassi: operando previsto (il token di errore è " / blah ") '. Ho chiarito ancora un po la mia risposta.

Risposta

Dovrai sfuggire a “:”. Quindi, il tuo file cshrc dovrebbe avere il seguente aspetto

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

Dopodiché, puoi farlo

source ~/.cshrc 

per applicare le modifiche al terminale corrente. Verrà applicato automaticamente la prossima volta che aprirai un nuovo terminale.

Commenti

  • Una sintassi più corretta in (t) csh sarebbe setenv PATH ${PATH:q}:/path/to/add. O meglio set path = ($path:q /path/to/add) o ancora meglio in tcsh: set -f path = ($path:q /path/to/add) per mantenere gli elementi unici.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *