Mauvais: modificateur dans $ (/). apparaît chaque fois quaprès la connexion et la création dun nouvel écran sous Linux

Lerreur suivante apparaît toujours après la connexion et la création dun nouvel écran sous Linux:

Bad : modifier in $ (/). 

Récemment, jai ajouté des chemins et je ne sais pas sils sont liés.

Pour les chemins, je me souviens que jai ajouté des éléments à $PATH et .bashrc.

Comment pourrais-je le corriger pour quil napparaisse plus?

Merci!

Commentaires

  • Nous ne ' ne savons pas si ' s liés non plus. Pourriez-vous ajouter ce que vous avez changé à la question sil vous plaît?
  • « Vous avez ajouté des chemins » signifie que vous avez ajouté des éléments à $PATH? Avez-vous modifié votre .bashrc? Pouvez-vous publier vos .profile et .bashrc?
  • Voir stackoverflow.com/questions/8805839/bad-modifier-in
  • Imagination sauvage: vous avez ajouté un chemin avec $ dedans, et le shell interprète $ comme un caractère spécial.
  • Je me souviens avoir ajouté des choses à $ PATH et .bashrc. Comment afficher mon .profile et .bashrc? Mark, jai consulté ce message et essayé quelque chose comme: setenv PATH $ {PATH}: /, mais ' t fonctionne.

Réponse

Vous nutilisez pas bash comme shell, mais (t)csh:

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

Si vous souhaitez utiliser bash à la place, vous pouvez probablement exécuter chsh ou demandez à votre administrateur système de le modifier pour vous.

Dans bash, si vous deviez désaligner le : et placez-le entre les accolades { } cela signifierait quun modificateur doit être appliqué à la variable. Dans csh, les accolades ne sont pas nécessaires pour appliquer un modificateur et vous auriez besoin dajouter des accolades si vous ne le faites pas veulent que le : signale quun modificateur le suit.

Commentaires

  • Est-ce une supposition ou un fait? Il est ' difficile à dire.
  • @Wildcard bash a des messages derreur très différents; il dirait: ' erreur de syntaxe: opérande attendu (le jeton derreur est " / blah ") '. Jai clarifié ma réponse un peu plus.

Réponse

Vous devrez échapper « : ». Donc, votre fichier cshrc devrait ressembler à,

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

Après cela, vous pouvez faire,

source ~/.cshrc 

pour appliquer les modifications au terminal actuel. Il sera automatiquement appliqué la prochaine fois que vous ouvrirez un nouveau terminal.

Commentaires

  • Une syntaxe plus correcte dans (t) csh serait setenv PATH ${PATH:q}:/path/to/add. Ou mieux set path = ($path:q /path/to/add) ou encore mieux en tcsh: set -f path = ($path:q /path/to/add) pour garder les éléments uniques.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *