Při každém otevření nového terminálu došlo k chybě,

chyba: „bash: export: příkaz nenalezen „

Kopíruji pouze export all_proxy =“ „a export ALL_PROXY =“ „do terminálu, pak když otevřu nový terminál, objeví se obrázek situace.

Toto je obrázek:

zde zadejte popis obrázku

Zadávám příkaz:

grep export ~/.bashrc 

výstup:

zde zadejte popis obrázku

Zadávám příkaz:

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

výstup:

zde zadejte popis obrázku

Komentáře

  • Můžete odeslat příkaz, který dal chybu, i samotnou chybu. Vypadá to, že před příkazem máte znak.
  • @ bu5hman Kopíruji pouze export all_proxy = " " a export ALL_PROXY = " " do terminálu, pak když otevřu nový terminál, na obrázku se objeví situace .
  • Fungují i jiné příkazy bash? Udělali jste něco pro $ PATH v této nebo předchozí relaci terminálu? Nebo upravte svůj bash profil?
  • úvodní jednoduchá nabídka před exportem v .bashrc .bash_profile?
  • @ bu5hman ' nedělám nic v $ PATH, nejprve se vyskytne přeinstalovat kali linux, druhý je stále případ. Druhý kopíruji pouze export all_proxy = " " a exportovat ALL_PROXY = " " do terminálu, pak když otevřu nový terminál, objeví se obrázek situace.

Odpověď

Vypadá to, že jste upravili svůj soubor .bashrc.

Mohu replikujte tuto chybu přesně, když vložím

"‘export" 

jako poslední řádek do mého .bashrc

Chcete-li to zkontrolovat, stačí provést

grep export ~/.bashrc 

Pokud grep poskytuje výstup jako výše, upravte jej ze souboru ~ / .bashrc.

Upravit: Z vaší poslední úpravy příspěvku můžete vidět, že máte 2 řádky začínající „exportem smazat oba f rom ~ / .bashrc.

Komentáře

  • Co mám dělat?
  • Zde je ` zpětná vazba. OP měl místo toho znak.
  • @St é phaneChazelas souhlasil, že příkaz je syntakticky chybný. Chyba bash se však zdá být způsobena řádky v ~ / .bashrc.
  • Přísně řečeno, příkaz je syntakticky správný, ale jen se pokusí vyvolat příkaz (‘export), které nelze najít.
  • @St é phaneChazelas souhlasil. Syntakticky správné, pokud vyvoláváte nový příkaz s názvem ‘export, ale nesprávný, pokud se pokoušíte volat export. Říkali jsme jim typo ' s. Skutečný ďábel, který je dostane z papyru.

Odpověď

Za předpokladu, že jste kopírovali, že příkaz tak, jak je, stěžuje si, že nebyl nalezen příkaz ‘export, kde je U + 2018 left jednoduchá uvozovka znak jiný než ASCII (nezaměňovat s ASCII " apostrophe / single-quote (U + 0027) nebo ASCII ` znak backtick / hrob s přízvukem (U + 0060)).

Protože tento znak není nijak zvláštním způsobem na bash, příkazový řádek jako:

‘export foo=bar’ 

(kde je U + 2019, správná jednoduchá uvozovka)

Je interpretováno jako spuštění příkazu ‘export s argumentem foo=bar’. Napsali jste:

"export foo=bar" 

místo toho, to je u těch U + 2018 a U + 2019 nahrazených ASCII apostrofem, což je znak, který je speciální pro bash protože cituje operátor, který by byl považován za spuštění příkazu export foo=bar bez argumentu. Žádný takový příkaz neexistuje. buď to, co chcete.

Chcete

export foo=bar 

nebo

"export" "foo=bar" 

To znamená spustit příkaz export s argumentem foo=bar.

Zde budete potřebovat odebrat tento znak U + 2018 (a případně odpovídající znak U + 2019, pokud existuje), kamkoli jste jej vložili do ~/.bashrc nebo kdekoli jinde. Kamkoli tento kód zkopírujete z , tyto postavy nebyly určeny ke kopírování.

Chcete-li zjistit, kde byl tento falešný příkaz zaveden, pokud ne v ~/.bashrc (ačkoli vaše poslední úprava ukazuje, že je ve vašem ~/.bashrc opravdu), můžete zkusit spustit:

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

($PS4 by spuštěné skořápky byly ignorovány. jako root s bash-4.4 nebo novějším, což se zdá být váš případ, proto místo názvu souboru uvidíte ++ a číslo řádku).

Komentáře

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *