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:
Wprowadzam polecenie:
grep export ~/.bashrc
ouput:
Wpisuję polecenie:
env SHELLOPTS=xtrace \ BASH_XTRACEFD=7 \ PS4="[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> " \ 7> >(grep ‘) bash -l
wyjście:
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
- Co mam teraz zrobić?
- @MichaelSmith Musisz edytować
~/.bashrc
, ale wcześniej zajrzyj tutaj: unix.stackexchange.com/questions/399626 - @MichaelSmith, co powiedziałem w odpowiedzi. Możesz także chcieć , aby uzyskać kilka samouczków lub zacząć od łatwiejszego systemu podobnego do uniksowego, zanim użyjesz systemu przeznaczonego dla profesjonalistów
- @St é phane Chazelas Skopiowałem i wkleiłem kod w odpowiedzi z stackoverflow.com/questions/47304988/…
- @MichaelSmith OP używa Kali, ale błąd nie jest tak naprawdę związany z dystrybucją. Stałoby się to również w przypadku Ubuntu ….. nie ' t kopiuj wklej