Il y a une erreur chaque fois quun nouveau terminal est ouvert,

erreur: « bash: export: command not found « 

Je copie uniquement export all_proxy = » « et exporte ALL_PROXY = » « vers le terminal, puis lorsque jouvre un nouveau terminal, limage de la situation apparaîtra.

Voici limage:

entrez la description de limage ici

Jentre la commande:

grep export ~/.bashrc 

ouput:

entrez la description de limage ici

Jentre la commande:

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

sortie:

entrez la description de limage ici

Commentaires

  • Pouvez-vous publier la commande qui a donné lerreur ainsi que lerreur elle-même. Il semble que vous ayez un caractère devant la commande.
  • @ bu5hman Je copie uniquement export all_proxy =  »  » et exportez ALL_PROXY =  »  » vers le terminal, puis lorsque jouvre un nouveau terminal, limage de la situation apparaîtra .
  • Les autres commandes bash fonctionnent-elles? Avez-vous fait quelque chose à $ PATH dans cette session de terminal ou dans la précédente? Ou modifier votre profil bash?
  • guillemet simple avant lexportation dans .bashrc .bash_profile?
  • @ bu5hman I don ‘ t faire quoi que ce soit dans $ PATH, le premier se produit, je réinstalle kali linux, le second est toujours le cas. Le second je ne copie que export all_proxy =  »  » et exportez ALL_PROXY =  »  » vers le terminal, puis lorsque jouvre un nouveau terminal, limage de la situation apparaîtra.

Réponse

Il semble que vous ayez modifié votre fichier .bashrc.

Je peux reproduire cette erreur exactement si je mets

"‘export" 

comme dernière ligne de mon .bashrc

Pour le vérifier, exécutez simplement

grep export ~/.bashrc 

Si grep donne une sortie comme ci-dessus, éditez-la à partir de votre fichier ~ / .bashrc.

Modifier: Depuis votre dernière modification de message, vous pouvez voir que vous avez 2 lignes commençant par « exporter les supprimer toutes les deux f rom ~ / .bashrc.

Commentaires

  • Que dois-je faire maintenant?
  • Ici ` est un backtick. LOP avait un caractère à la place.
  • @St é phaneChazelas A convenu que la commande est syntaxiquement incorrecte. Lerreur bash semble cependant due aux lignes dans ~ / .bashrc.
  • À proprement parler, la commande est syntaxiquement correcte mais se trouve juste pour essayer dappeler une commande (‘export) introuvable.
  • @St é phaneChazelas Daccord. Syntaxiquement correcte si vous appelez une nouvelle commande appelée ‘export, mais incorrecte si vous essayez dappeler export. Nous les appelions typo ‘ s. Un vrai diable pour les sortir du papyrus.

Réponse

En supposant que vous « avez copié-collé cela commande telle quelle, il se plaint que la commande ‘export est introuvable là où est le U + 2018 restant guillemet simple caractère non ASCII (à ne pas confondre avec lASCII " apostrophe / guillemet simple (U + 0027) ou ASCII ` caractère backtick / grave accent (U + 0060)).

Puisque ce caractère nest en aucun cas spécial pour bash, une ligne de commande comme:

‘export foo=bar’ 

(où est U + 2019, le guillemet simple à droite)

Est interprété comme exécutant la commande ‘export avec foo=bar’ comme argument. Si vous aviez écrit:

"export foo=bar" 

à la place, cest-à-dire avec ces U + 2018 et U + 2019 remplacés par une apostrophe ASCII, un caractère spécial pour bash car il « est un opérateur de guillemet, qui aurait été traité comme exécutant la commande export foo=bar sans argument. Il nexiste pas de commande de ce type. Ce nest pas ce que vous voulez non plus.

Vous voulez

export foo=bar 

ou

"export" "foo=bar" 

Cest-à-dire exécuter la commande export avec un argument foo=bar.

Ici, vous aurez besoin pour supprimer ce caractère U + 2018 (et éventuellement le caractère U + 2019 correspondant le cas échéant) partout où vous lavez inséré dans votre ~/.bashrc ou ailleurs. Où que vous ayez copié-collé ce code , ces caractères nétaient pas destinés à être copiés.

Pour trouver où cette fausse commande a été introduite sinon dans ~/.bashrc (bien que votre dernière modification montre quelle se trouve dans votre ~/.bashrc en effet), vous pouvez essayer dexécuter:

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

(le $PS4 serait ignoré par les shells en cours dexécution comme root avec bash-4.4 ou plus récent cependant, ce qui semble être votre cas, cest pourquoi vous voyez ++ au lieu du nom de fichier et numéro de ligne).

Commentaires

Laisser un commentaire

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