Si verifica un errore ogni volta che viene aperto un nuovo terminale,

errore: “bash: export: command not found “

Copio solo export all_proxy =” “ed esporto ALL_PROXY =” “sul terminale, quindi quando apro un nuovo terminale, apparirà limmagine della situazione.

Questa è limmagine:

inserisci qui la descrizione dellimmagine

Inserisco il comando:

grep export ~/.bashrc 

ouput:

inserisci qui la descrizione dellimmagine

Inserisco il comando:

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

output:

inserisci qui la descrizione dellimmagine

Commenti

  • Puoi inviare il comando che ha dato lerrore così come lerrore stesso. Sembra che tu abbia un carattere davanti al comando.
  • @ bu5hman Copia solo export all_proxy = " " ed esporto ALL_PROXY = " " al terminale, quindi quando apro un nuovo terminale, nellimmagine della situazione apparirà .
  • Gli altri comandi bash funzionano? Hai fatto qualcosa a $ PATH in questa o nella precedente sessione del terminale? O modificare il tuo profilo bash?
  • virgoletta singola iniziale prima di esportare in .bashrc .bash_profile?
  • @ bu5hman Non ' non faccio nulla in $ PATH, per prima cosa reinstallo kali linux, il secondo è ancora così. Il secondo copia solo export all_proxy = " " ed esporta ALL_PROXY = " " al terminale, quindi quando apro un nuovo terminale, nellimmagine della situazione apparirà.

Risposta

Sembra che tu abbia modificato il tuo file .bashrc.

Posso replica esattamente questo errore se metto

"‘export" 

come ultima riga nel mio .bashrc

Per verificarlo basta eseguire

grep export ~/.bashrc 

Se grep fornisce un output come quello sopra, modificalo dal tuo file ~ / .bashrc.

Modifica: dalla tua ultima modifica al post puoi vedere che hai 2 righe che iniziano con “esporta cancellale entrambe f rom ~ / .bashrc.

Commenti

  • Ora cosa dovrei fare?
  • Qui ` è un backtick. LOP aveva invece un carattere .
  • @St é phaneChazelas Concordato che il comando è sintatticamente sbagliato. Lerrore bash, tuttavia, sembra dovuto alle righe in ~ / .bashrc.
  • A rigor di termini, il comando è sintatticamente corretto ma capita solo di provare a invocare un comando (‘export) che non può essere trovato.
  • @St é phaneChazelas daccordo. Sintatticamente corretto se stai invocando un nuovo comando chiamato ‘export, ma non corretto se stai tentando di chiamare export. Li chiamavamo typo ' s. Un vero diavolo per tirarli fuori dal papiro.

Rispondi

Supponendo che tu “lo abbia incollato comando così comè, si lamenta che il comando ‘export non è stato trovato dove è lU + 2018 rimasto virgolette singole carattere non ASCII (da non confondere con " apostrofo / virgolette singole (U + 0027) o ASCII ` backtick / grave accento (U + 0060) carattere).

Dato che quel carattere non è speciale in alcun modo per bash, una riga di comando come:

‘export foo=bar’ 

(dove è U + 2019, virgoletta singola destra)

Viene interpretato come lesecuzione del comando ‘export con foo=bar’ come argomento. Avevi scritto:

"export foo=bar" 

invece, cioè con quelli U + 2018 e U + 2019 sostituiti con apostrofo ASCII, un carattere speciale di bash in quanto “un operatore di quotazione, che sarebbe stato considerato come eseguire il comando export foo=bar senza argomenti. Non esiste un comando simile. Non lo è quello che vuoi.

Vuoi

export foo=bar 

o

"export" "foo=bar" 

Ovvero eseguire il comando export con un argomento foo=bar.

Qui avrai bisogno per rimuovere quel carattere U + 2018 (e possibilmente il carattere U + 2019 corrispondente, se presente) ovunque lo hai inserito nel tuo ~/.bashrc o altrove. Ovunque hai copiato e incollato il codice , quei caratteri non erano destinati a essere copiati.

Per scoprire dove è stato introdotto quel comando fasullo se non in ~/.bashrc (anche se lultima modifica mostra che è nel tuo ~/.bashrc in effetti), potresti provare a eseguire:

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

(il $PS4 verrebbe ignorato dalle shell in esecuzione come root con bash-4.4 o versioni successive, tuttavia, che sembra essere il tuo caso, motivo per cui vedi ++ al posto del nome del file e il numero di riga).

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *