Det finns ett misstag varje gång en ny terminal öppnas,

error: ”bash: export: kommandot hittades inte ”

Jag kopierar bara export all_proxy =” ”och exporterar ALL_PROXY =” ”till terminal, när jag öppnar en ny terminal kommer bilden i situationen att visas.

Detta är bild:

ange bildbeskrivning här

Jag skriver in kommandot:

grep export ~/.bashrc 

ouput:

ange bildbeskrivning här

Jag matar in kommandot:

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

output:

ange bildbeskrivning här

Kommentarer

  • Kan du lägga upp kommandot som gav felet såväl som själva felet. Det verkar som om du har ett tecken framför kommandot.
  • @ bu5hman Jag kopierar bara export all_proxy = " " och exportera ALL_PROXY = " " till terminal, när jag öppnar en ny terminal kommer bilden i situationen att visas .
  • Fungerar andra bash-kommandon? Har du gjort något åt $ PATH i den här eller föregående terminalsessionen? Eller redigera din bash-profil?
  • ledande enstaka offert innan du exporterar i .bashrc .bash_profile?
  • @ bu5hman Jag gör ' t gör någonting i $ PATH, första gången installerar jag om kali linux, det andra är fortfarande fallet. Den andra kopierar jag bara export all_proxy = " " och exportera ALL_PROXY = " " till terminal, när jag öppnar en ny terminal kommer bilden i situationen att visas.

Svar

Det verkar som om du har redigerat din .bashrc-fil.

Jag kan replikera detta fel exakt om jag lägger till

"‘export" 

som den sista raden i min .bashrc

För att kontrollera det, kör bara

grep export ~/.bashrc 

Om grep ger en utdata som ovan redigerar du den från din ~ / .bashrc-fil.

Redigera: Från din senaste inläggsredigering kan du se att du har två rader som börjar ”export ta bort dem båda f rom ~ / .bashrc.

Kommentarer

  • Vad ska jag göra nu?
  • Här är ` en backtick. OP hade istället ett -tecken.
  • @St é phaneChazelas Enades om att kommandot är syntaktiskt fel. Bash-felet verkar dock på grund av raderna i ~ / .bashrc.
  • Strängt taget är kommandot syntaktiskt korrekt men råkar bara försöka anropa ett kommando (‘export) som inte kan hittas.
  • @St é phaneChazelas Agreement. Syntaktiskt korrekt om du åberopar ett nytt kommando som heter ‘export, men fel om du försöker ringa export. Vi kallade dem typsnitt ' s. En riktig djävul för att få dem ur papyrusen.

Svar

Om du antar att du har kopierat in det kommandot som det är, det klagar över att kommandot ‘export inte hittas där är U + 2018 kvar enda citattecken icke-ASCII-tecken (får inte förväxlas med ASCII " apostrof / enstaka citat (U + 0027) eller ASCII ` backtick / grave accent (U + 0060) character).

Eftersom det tecknet inte är speciellt på något sätt för bash, en kommandorad som:

‘export foo=bar’ 

(där är U + 2019, rätt enda citattecken)

Tolkas som att köra kommandot ‘export med foo=bar’ som argument. Hade du skrivit:

"export foo=bar" 

istället, det vill säga med dessa U + 2018 och U + 2019 ersatt med ASCII-apostrof, ett tecken som är speciellt för bash som det är en citerande operatör, som skulle ha behandlats som att köra kommandot export foo=bar utan argument. Det finns inget sådant kommando. Det är inte vad du vill ha heller.

Du vill

export foo=bar 

eller

"export" "foo=bar" 

Det vill säga att köra kommandot export med ett foo=bar -argument.

Här behöver du för att ta bort det U + 2018-tecknet (och eventuellt motsvarande U + 2019-tecknet om något) var du än har lagt in det i din ~/.bashrc eller någon annanstans. Var du kopierar och klistrar in koden , dessa karaktärer var inte avsedda att kopieras.

För att hitta var det falska kommandot har införts om inte i ~/.bashrc (även om din senaste redigering visar att den finns i din ~/.bashrc faktiskt), du kan försöka köra:

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

($PS4 ignoreras av skal som kör som root med bash-4.4 eller nyare dock, vilket verkar vara ditt fall, varför du ser ++ istället för filnamnet och radnummer).

Kommentarer

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *