Malo: modificador en $ (/). aparece cada vez que se inicia sesión y se crea una nueva pantalla en Linux

El siguiente error siempre aparece después de iniciar sesión y crear una nueva pantalla en Linux:

Bad : modifier in $ (/). 

Recientemente agregué algunas rutas y no sé si están relacionadas.

Para las rutas, recuerdo que agregué cosas a $PATH y .bashrc.

¿Cómo puedo corregirlo para que no vuelva a aparecer?

¡Gracias!

Comentarios

  • No ' sabemos si ' s relacionados tampoco. ¿Podría agregar lo que cambió a la pregunta, por favor?
  • “Agregó algunas rutas”, significa que agregó cosas a $PATH? ¿Cambió su .bashrc? ¿Puedes publicar tu .profile y .bashrc?
  • Consulta stackoverflow.com/questions/8805839/bad-modifier-in
  • Conjetura salvaje: agregaste una ruta con $ y el shell interpreta $ como un carácter especial.
  • Recuerdo que agregué cosas a $ PATH y .bashrc. ¿Cómo puedo ver mi .profile y .bashrc? Mark, he visto esa publicación e intenté algo como: setenv PATH $ {PATH}: /, pero no ' no funcionó.

Respuesta

No utilizas bash como tu shell, sino (t)csh:

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

Si desea utilizar bash en su lugar, probablemente pueda ejecutar chsh o pídale al administrador del sistema que lo cambie por usted.

En bash, si tuviera que desalinear el : y colóquelo dentro de las llaves { } significaría que un modificador se aplicará a la variable. En csh las llaves no son necesarias para aplicar un modificador y en realidad necesitaría agregar llaves si no desea que : indique que un modificador lo está siguiendo.

Comentarios

  • ¿Es una suposición o un hecho? Es ' difícil de decir.
  • @Wildcard bash tiene mensajes de error muy diferentes; diría: ' error de sintaxis: operando esperado (el token de error es " / blah ") '. Aclaré mi respuesta un poco más.

Respuesta

Deberá escapar «:». Entonces, su archivo cshrc debería verse así,

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

Después de esto, puede hacerlo,

source ~/.cshrc 

para aplicar cambios a la terminal actual. Se aplicará automáticamente la próxima vez que abra una nueva terminal.

Comentarios

  • Una sintaxis más correcta en (t) csh sería setenv PATH ${PATH:q}:/path/to/add. O mejor set path = ($path:q /path/to/add) o incluso mejor en tcsh: set -f path = ($path:q /path/to/add) para mantener los elementos únicos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *