Det er en feil hver gang en ny terminal åpnes,

error: «bash: eksport: kommando ikke funnet «

Jeg kopierer bare eksport all_proxy =» «og eksporterer ALL_PROXY =» «til terminal, så når jeg åpner en ny terminal, vises bildet av situasjonen.

Dette er bilde:

skriv inn bildebeskrivelse her

Jeg skriver inn kommandoen:

grep export ~/.bashrc 

ouput:

skriv inn bildebeskrivelse her

Jeg skriver inn kommandoen:

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

output:

skriv inn bildebeskrivelse her

Kommentarer

  • Kan du legge ut kommandoen som ga feilen, så vel som selve feilen. Det ser ut til at du har et tegn foran kommandoen.
  • @ bu5hman Jeg kopierer bare eksport all_proxy = " " og eksporter ALL_PROXY = " " til terminal, så når jeg åpner en ny terminal, vil bildet i situasjonen vises .
  • Fungerer andre bash-kommandoer? Gjorde du noe med $ PATH i denne eller forrige terminalsessionen? Eller rediger bash-profilen din?
  • ledende enkelt tilbud før eksport i .bashrc .bash_profile?
  • @ bu5hman Jeg gjør ikke ' t gjør noe i $ PATH, først forekommer jeg å installere kali linux på nytt, den andre er fortsatt tilfelle. Den andre kopierer jeg bare eksport all_proxy = " " og eksporter ALL_PROXY = " " til terminal, så når jeg åpner en ny terminal, vil bildet i situasjonen vises.

Svar

Det ser ut til at du har redigert .bashrc-filen.

Jeg kan replikere denne feilen nøyaktig hvis jeg setter

"‘export" 

som den siste linjen i .bashrc

For å sjekke det, bare utfør

grep export ~/.bashrc 

Hvis grep gir en utdata som ovenfor, rediger den ut av ~ / .bashrc-filen.

Rediger: Fra ditt siste innleggsredigering kan du se at du har to linjer som starter «eksport slett dem begge f rom ~ / .bashrc.

Kommentarer

  • Hva skal jeg gjøre nå?
  • Her er ` et backtick. OP-en hadde et -tegn i stedet.
  • @St é phaneChazelas Ente om at kommandoen er syntaktisk feil. Bash-feilen virker imidlertid på grunn av linjene i ~ / .bashrc.
  • Strengt tatt er kommandoen syntaktisk riktig, men bare prøver å påkalle en kommando (‘export) som ikke finnes.
  • @St é phaneChazelas Agreement. Syntaktisk korrekt hvis du påkaller en ny kommando kalt ‘export, men feil hvis du prøver å ringe export. Vi pleide å kalle dem skrivefeil ' s. En skikkelig djevel for å få dem ut av papyrusen.

Svar

Forutsatt at du har kopiert inn at kommandoen som den er, den klager over at ‘export kommandoen ikke ble funnet der er U + 2018 igjen enkelt anførselstegn ikke-ASCII-tegn (ikke forveksles med ASCII " apostrof / enkelt sitat (U + 0027) eller ASCII ` backtick / grave accent (U + 0060) character).

Siden dette tegnet ikke er spesielt på noen måte for bash, en kommandolinje som:

‘export foo=bar’ 

(der er U + 2019, det rette anførselstegnet)

tolkes som å kjøre ‘export -kommandoen med foo=bar’ som argument. Hadde du skrevet:

"export foo=bar" 

i stedet, det vil si med U + 2018 og U + 2019 erstattet med ASCII-apostrof, et tegn som er spesielt for bash som det er en siteringsoperatør, som ville blitt behandlet som å kjøre export foo=bar -kommandoen uten argument. Det er ingen slik kommando. Det er ikke hva du vil heller.

Du vil

export foo=bar 

eller

"export" "foo=bar" 

Det vil si å kjøre export -kommandoen med et foo=bar -argument.

Her trenger du for å fjerne det U + 2018-tegnet (og muligens det tilsvarende U + 2019-tegnet hvis det er noe) uansett hvor du har satt det inn i ~/.bashrc eller andre steder. Uansett hvor du kopierer og limer inn koden fra , disse tegnene var ikke ment å kopieres.

For å finne ut hvor den falske kommandoen har blitt innført hvis ikke i ~/.bashrc (selv om den siste redigeringen din viser at den er i ~/.bashrc faktisk), kan du prøve å kjøre:

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

($PS4 vil bli ignorert av skjell som kjører som root med bash-4.4 eller nyere, men det ser ut til å være ditt tilfelle, og derfor ser du ++ i stedet for filnavnet og linjenummer).

Kommentarer

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *