Există o greșeală de fiecare dată când se deschide un terminal nou,

error: „bash: export: comanda nu a fost găsită „

Copiez doar export all_proxy =” „și export ALL_PROXY =” „la terminal, atunci când deschid un terminal nou, va apărea imaginea situației.

Aceasta este imaginea:

introduceți descrierea imaginii aici

Am introdus comanda:

grep export ~/.bashrc 

ouput:

introduceți descrierea imaginii aici

Am introdus comanda:

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

ieșire:

introduceți descrierea imaginii aici

Comentarii

  • Puteți posta comanda care a dat eroarea, precum și eroarea în sine. Se pare că ai un caracter în fața comenzii.
  • @ bu5hman Copiez doar export all_proxy = " " și export ALL_PROXY = " " la terminal, atunci când deschid un terminal nou, în imaginea situației va apărea .
  • Funcționează alte comenzi bash? Ați făcut ceva pentru $ PATH în această sesiune de terminal sau în cea anterioară? Sau editați-vă profilul bash?
  • cotația principală înainte de export în .bashrc .bash_profile?
  • @ bu5hman Nu ' nu fac nimic în $ PATH, întâi apar Reinstal kali linux, al doilea este încă cazul. Al doilea copiez doar export all_proxy = " " și exportați ALL_PROXY = " " la terminal, atunci când deschid un terminal nou, va apărea imaginea situației.

Răspuns

Se pare că ți-ai editat fișierul .bashrc.

Pot replicați această eroare exact dacă pun

"‘export" 

ca ultima linie din .bashrc

Pentru a o verifica, executați

grep export ~/.bashrc 

Dacă grep oferă o ieșire ca cea de mai sus, editați-o din fișierul dvs. ~ / .bashrc.

Editare: din ultima editare a postării puteți vedea că aveți 2 linii începând „export ștergeți-le pe amândouă f rom ~ / .bashrc.

Comentarii

  • Acum ce ar trebui să fac?
  • Aici ` un backtick. OP avea în schimb un caracter .
  • @St é phaneChazelas A fost de acord că comanda este sintactic greșită. Eroarea bash pare totuși datorată liniilor din ~ / .bashrc.
  • Strict vorbind, comanda este corectă din punct de vedere sintactic, dar se întâmplă doar să încercăm să invocăm o comandă (‘export) care nu poate fi găsit.
  • @St é phaneChazelas De acord. Sintactic corect dacă invocați o nouă comandă numită ‘export, dar incorectă dacă încercați să apelați export. Obișnuiam să le numim greșeli de tip ' s. Un adevărat diavol care să-i scoată din papirus.

Răspunde

Presupunând că ai copiat comanda ca atare, se plânge că comanda ‘export nu a fost găsită acolo unde este U + 2018 stânga ghilimel unic caracter care nu este ASCII (nu trebuie confundat cu ASCII " apostrof / citat simplu (U + 0027) sau ASCII ` caracter backtick / accent grav (U + 0060)).

Deoarece caracterul respectiv nu este special în niciun fel pentru bash, o linie de comandă cum ar fi:

‘export foo=bar’ 

(unde este U + 2019, ghilimele unice potrivite)

Este interpretat ca executând comanda ‘export cu foo=bar’ ca argument. Dacă ați fi scris:

"export foo=bar" 

, în schimb, cu acele U + 2018 și U + 2019 înlocuite cu apostrof ASCII, un caracter special pentru bash deoarece este „un operator de cotare, care ar fi fost tratat ca executând comanda export foo=bar fără argument. Nu există o astfel de comandă. Aceasta nu este ceea ce vrei fie.

Vrei

export foo=bar 

sau

"export" "foo=bar" 

Aceasta înseamnă să rulați comanda export cu un argument foo=bar.

Aici veți avea nevoie pentru a elimina acel caracter U + 2018 (și, eventual, caracterul corespunzător U + 2019, dacă există) oriunde l-ați inserat în ~/.bashrc sau în altă parte. Oriunde ați copiat codul din , aceste caractere nu au fost destinate copierii.

Pentru a găsi unde a fost introdusă acea comandă falsă, dacă nu în ~/.bashrc (deși ultima dvs. editare arată că este în ~/.bashrc într-adevăr), ați putea încerca să rulați:

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

($PS4 ar fi ignorat de shell-urile care rulează ca root cu bash-4.4 sau mai nou, totuși, ceea ce pare să fie cazul dvs., motiv pentru care vedeți ++ în locul numelui fișierului și numărul liniei).

Comentarii

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *