bash: 'exportar: comando no encontrado

bash: 'exportar: comando no encontrado

Hay un error cada vez que se abre una nueva terminal,

error: "bash: 'exportar: comando no encontrado"

Solo copio export all_proxy="" y exporto ALL_PROXY="" a la terminal, luego, cuando abro una nueva terminal, aparecerá la imagen de la situación.

Esta es la imagen:

ingrese la descripción de la imagen aquí

Introduzco el comando:

grep export ~/.bashrc

salida:

ingrese la descripción de la imagen aquí

Introduzco el comando:

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

producción:

ingrese la descripción de la imagen aquí

Respuesta1

Parece que ha editado su archivo .bashrc.

Puedo replicar este error exactamente si pongo

'‘export'        

como última línea en mi .bashrc

Para comprobarlo simplemente ejecute

grep export ~/.bashrc

Si grepobtiene un resultado como el anterior, edítelo de su archivo ~/.bashrc.

Editar: desde la última edición de tu publicación, puedes ver que tienes 2 líneas que comienzan con 'exportar, eliminarlas ambas de ~/.bashrc.

Respuesta2

Suponiendo que haya copiado y pegado ese comando tal como está, se queja de que ‘exportno se encuentra el comando donde está el U+2018.comillas simples izquierdascarácter no ASCII (no debe confundirse con el carácter ASCII 'de apóstrofo/comilla simple (U+0027) o ASCII `de comillas graves/acento grave (U+0060)).

Dado que ese carácter no es especial de ninguna manera bash, una línea de comando como:

‘export foo=bar’

(donde está U+2019, la comilla simple derecha)

Se interpreta como ejecutar el ‘exportcomando con foo=bar’un argumento. ¿Habías escrito:

'export foo=bar'

en cambio, es decir, con esos U+2018 y U+2019 reemplazados con un apóstrofe ASCII, un carácter que es especial porque bashes un operador de comillas, que se habría tratado como si ejecutara el export foo=barcomando sin argumentos. No existe tal comando. Eso tampoco es lo que quieres.

Quieres

export foo=bar

o

'export' 'foo=bar'

Eso es ejecutar el exportcomando con un foo=barargumento.

Aquí, deberás eliminar ese carácter U+2018 (y posiblemente el carácter U+2019 correspondiente, si lo hubiera) dondequiera que lo hayas insertado en tu ~/.bashrco en otro lugar. Dondequiera que haya copiado y pegado ese código, esos caracteres no estaban destinados a ser copiados.

Para saber dónde se introdujo ese comando falso, si no es así ~/.bashrc(aunque su última edición muestra que sí está en su ~/.bashrcsitio), puede intentar ejecutar:

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

( Sin embargo $PS4, los shells que se ejecutan como bash-4.4 o posterior lo ignorarían root, lo que parece ser su caso, por lo que ve ++en lugar del nombre del archivo y el número de línea).

información relacionada