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:
Inserisco il comando:
grep export ~/.bashrc
ouput:
Inserisco il comando:
env SHELLOPTS=xtrace \ BASH_XTRACEFD=7 \ PS4="[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> " \ 7> >(grep ‘) bash -l
output:
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 chiamareexport
. 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
- Ora cosa dovrei fare?
- @MichaelSmith Devi modificare
~/.bashrc
, ma prima, dai unocchiata qui: unix.stackexchange.com/questions/399626 - @MichaelSmith, cosa ho detto nella risposta. Potresti anche desiderare che riceva alcuni tutorial o inizi con un sistema simile a unix più semplice prima di utilizzare un sistema destinato ai professionisti
- @St é phane Chazelas Ho copiato e incollato il codice nella risposta da stackoverflow.com/questions/47304988/…
- @MichaelSmith LOP sta usando Kali ma lerrore non è realmente correlato alla distribuzione. Sarebbe successo anche con Ubuntu ….. don ' t copia incolla