Za każdym razem, gdy otwierany jest nowy terminal, występuje błąd,

błąd: „bash: export: command not found „

Kopiuję tylko export all_proxy =” „i eksportuję ALL_PROXY =” „do terminala, a kiedy otworzę nowy terminal, na obrazku pojawi się sytuacja.

To jest zdjęcie:

tutaj wprowadź opis obrazu

Wprowadzam polecenie:

grep export ~/.bashrc 

ouput:

tutaj wprowadź opis obrazu

Wpisuję polecenie:

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

wyjście:

tutaj wprowadź opis obrazu

Komentarze

  • Czy możesz opublikować polecenie, które spowodowało błąd, a także sam błąd. Wygląda na to, że przed poleceniem znajduje się znak.
  • @ bu5hman Kopiuję tylko eksport all_proxy = " " i wyeksportuj ALL_PROXY = " " do terminala, a kiedy otworzę nowy terminal, na obrazku sytuacji pojawi się .
  • Czy działają inne polecenia basha? Czy zrobiłeś coś z $ PATH w tej lub poprzedniej sesji terminala? Lub edytować swój profil basha?
  • początkowy pojedynczy cudzysłów przed wyeksportowaniem do .bashrc .bash_profile?
  • @ bu5hman Nie ' nic nie robię w $ PATH, najpierw ponownie instaluję kali linux, po drugie nadal tak jest. Drugi tylko kopiuję eksport all_proxy = " " i wyeksportuj ALL_PROXY = " " do terminala, a kiedy otworzę nowy terminal, pojawi się obraz sytuacji.

Odpowiedź

Wygląda na to, że edytowałeś swój plik .bashrc.

Mogę powtórzyć ten błąd dokładnie, jeśli wstawię

"‘export" 

jako ostatnią linię w moim .bashrc

Aby to sprawdzić, po prostu wykonaj

grep export ~/.bashrc 

Jeśli grep daje wynik podobny do powyższego, a następnie edytuj go z pliku ~ / .bashrc.

Edycja: Z ostatniej edycji posta możesz zobaczyć, że masz 2 wiersze zaczynające się „eksportuj usuń je obie f rom ~ / .bashrc.

Komentarze

  • Co mam teraz zrobić?
  • Tutaj ` jest backtick. Zamiast tego OP miał znak .
  • @St é phaneChazelas Uzgodniono, że komenda jest błędna składniowo. Wydaje się jednak, że błąd basha wynika z linii w ~ / .bashrc.
  • Ściśle mówiąc, polecenie jest poprawne składniowo, ale zdarza się, że próbuje wywołać polecenie (‘export), którego nie można znaleźć.
  • @St é phaneChazelas Zgoda. Składniowo poprawna, jeśli wywołujesz nowe polecenie o nazwie ‘export, ale niepoprawna, jeśli próbujesz wywołać export. Nazywaliśmy je literówką ' s. Prawdziwy diabeł, który wyciągnie je z papirusu.

Odpowiedź

Zakładając, że „wklejono” to polecenie w obecnej postaci, skarży się, że ‘export polecenie nie zostało znalezione, gdzie to pozostało U + 2018 pojedynczy cudzysłów znak inny niż ASCII (nie mylić z ASCII " apostrof / pojedynczy cudzysłów (U + 0027) lub ASCII ` backtick / grave accent (U + 0060) character).

Ponieważ ten znak nie jest w żaden sposób szczególny dla bash, wiersza poleceń na przykład:

‘export foo=bar’ 

(gdzie to U + 2019, prawy pojedynczy cudzysłów)

Jest interpretowane jako uruchomienie polecenia ‘export z argumentem foo=bar’. Czy zamiast tego napisałeś:

"export foo=bar" 

, to znaczy te U + 2018 i U + 2019 zastąpione apostrofem ASCII, znakiem specjalnym dla bash ponieważ jest to operator cytowania, który zostałby potraktowany jako uruchomienie polecenia export foo=bar bez argumentu. Nie ma takiego polecenia. To nie jest co chcesz.

Chcesz

export foo=bar 

lub

"export" "foo=bar" 

Oznacza to uruchomienie polecenia export z argumentem foo=bar.

Tutaj będziesz potrzebować aby usunąć ten znak U + 2018 (i prawdopodobnie odpowiadający mu znak U + 2019, jeśli istnieje) z każdego miejsca, w którym został wstawiony w ~/.bashrc lub w innym miejscu. Gdziekolwiek skopiujesz i wkleisz ten kod , znaki te nie były przeznaczone do kopiowania.

Aby sprawdzić, gdzie to fałszywe polecenie zostało wprowadzone, jeśli nie w ~/.bashrc (chociaż ostatnia edycja pokazuje, że znajduje się ona w twoim ~/.bashrc

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

($PS4 zostanie zignorowany przez uruchomione powłoki jako root z bash-4.4 lub nowszym, jednak wydaje się, że tak jest w Twoim przypadku, dlatego zamiast nazwy pliku widzisz ++ i numer linii).

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *