Der er en fejl hver gang en ny terminal åbnes,

fejl: “bash: eksport: kommando ikke fundet “

Jeg kopierer kun eksport all_proxy =” “og eksporterer ALL_PROXY =” “til terminal, så når jeg åbner en ny terminal, vises billedet af situationen.

Dette er billede:

indtast billedbeskrivelse her

Jeg indtaster kommandoen:

grep export ~/.bashrc 

ouput:

indtast billedbeskrivelse her

Jeg indtaster kommandoen:

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

output:

indtast billedbeskrivelse her

Kommentarer

  • Kan du sende den kommando, der gav fejlen, såvel som selve fejlen. Det ser ud som om du har et tegn foran kommandoen.
  • @ bu5hman Jeg kopierer kun eksport all_proxy = " " og eksporter ALL_PROXY = " " til terminal, så når jeg åbner en ny terminal, vil billedet af situationen blive vist .
  • Fungerer andre bash-kommandoer? Har du gjort noget ved $ PATH i denne eller den forrige terminalsession? Eller rediger din bash-profil?
  • førende enkelt tilbud før eksport i .bashrc .bash_profile?
  • @ bu5hman Jeg gør ' ikke gør noget i $ PATH, først forekommer jeg geninstallere kali linux, det andet er stadig tilfældet. Det andet kopierer jeg kun eksport all_proxy = " " og eksporter ALL_PROXY = " " til terminal, så når jeg åbner en ny terminal, vises billedet af situationen.

Svar

Det ser ud til, at du har redigeret din .bashrc-fil.

Jeg kan repliker denne fejl nøjagtigt, hvis jeg sætter

"‘export" 

som den sidste linje i min .bashrc

For at kontrollere det skal du bare udføre

grep export ~/.bashrc 

Hvis grep giver en output som ovenfor, skal du redigere den ud af din ~ / .bashrc-fil.

Rediger: Fra din sidste postredigering kan du se, at du har 2 linjer, der starter “eksport slet dem begge f rom ~ / .bashrc.

Kommentarer

  • Hvad skal jeg nu gøre?
  • Her er ` et backtick. OP havde et -tegn i stedet.
  • @St é phaneChazelas Enig om, at kommandoen er syntaktisk forkert. Bash-fejlen synes dog på grund af linierne i ~ / .bashrc.
  • Strengt taget er kommandoen syntaktisk korrekt, men tilfældigvis prøver den at påkalde en kommando (‘export) som ikke kan findes.
  • @St é phaneChazelas Aftalt. Syntaktisk korrekt, hvis du påkalder en ny kommando kaldet ‘export, men forkert, hvis du prøver at ringe til export. Vi plejede at kalde dem skrivefejl ' s. En rigtig djævel for at få dem ud af papyrusen.

Svar

Forudsat at du har kopieret det ind kommando som den er, den klager over, at kommandoen ‘export ikke findes, hvor er U + 2018 tilbage enkelt anførselstegn ikke-ASCII-tegn (må ikke forveksles med ASCII " apostrof / enkelt citat (U + 0027) eller ASCII ` backtick / grave accent (U + 0060) tegn).

Da dette tegn på ingen måde er specielt for bash, en kommandolinje som:

‘export foo=bar’ 

(hvor er U + 2019, det rigtige enkelt anførselstegn)

Fortolkes som at køre ‘export kommandoen med foo=bar’ som argument. Havde du skrevet:

"export foo=bar" 

i stedet, dvs. med disse U + 2018 og U + 2019 erstattet med ASCII-apostrof, et tegn der er specielt for bash som det er en citerende operatør, der ville være blevet behandlet som at køre export foo=bar kommandoen uden noget argument. Der er ingen sådan kommando. Det er ikke hvad du vil have.

Du vil

export foo=bar 

eller

"export" "foo=bar" 

Det vil sige at køre export kommandoen med et foo=bar argument.

Her skal du bruge for at fjerne det U + 2018-tegn (og eventuelt det tilsvarende U + 2019-tegn, hvis der er noget), uanset hvor du har indsat det i din ~/.bashrc eller andre steder. Uanset hvor du kopierede og indsatte koden fra , disse tegn var ikke beregnet til at blive kopieret.

For at finde, hvor den falske kommando er blevet introduceret, hvis ikke i ~/.bashrc (selvom din seneste redigering viser, at den er i din ~/.bashrc faktisk), kan du prøve at køre:

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

($PS4 ville blive ignoreret af skaller, der kører som root med bash-4.4 eller nyere dog, hvilket synes at være din sag, hvorfor du ser ++ i stedet for filnavnet og linjenummer).

Kommentarer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *