Er is een fout elke keer dat een nieuwe terminal wordt geopend,
fout: “bash: export: command not found “
Ik kopieer alleen export all_proxy =” “en exporteer ALL_PROXY =” “naar terminal, en wanneer ik een nieuwe terminal open, zal in de afbeelding van de situatie verschijnen.
Dit is een afbeelding:
Ik voer het commando in:
grep export ~/.bashrc
ouput:
Ik voer het volgende commando in:
env SHELLOPTS=xtrace \ BASH_XTRACEFD=7 \ PS4="[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> " \ 7> >(grep ‘) bash -l
output:
Opmerkingen
- Kunt u het commando posten dat zowel de fout als de fout zelf opleverde? Het lijkt erop dat er een teken voor het commando staat.
- @ bu5hman Ik kopieer alleen export all_proxy = ” ” en exporteer ALL_PROXY = ” ” naar terminal, en wanneer ik een nieuwe terminal open, zal in de afbeelding van de situatie verschijnen .
- Werken andere bash-commandos? Heb je iets met $ PATH gedaan in deze of de vorige terminalsessie? Of je bash-profiel bewerken?
- leidend enkele aanhalingsteken voordat je exporteert in .bashrc .bash_profile?
- @ bu5hman Ik ‘ doe niets in $ PATH, eerste keer dat ik kali linux opnieuw installeer, de tweede is nog steeds het geval. de tweede kopieer ik alleen export all_proxy = ” ” en exporteer ALL_PROXY = ” ” naar terminal, en wanneer ik een nieuwe terminal open, zal in de afbeelding van de situatie verschijnen.
Answer
Het lijkt erop dat je je .bashrc-bestand hebt bewerkt.
Ik kan repliceer deze fout exact als ik
"‘export"
plaats als de laatste regel in mijn .bashrc
Om het te controleren, voer je gewoon uit
grep export ~/.bashrc
Als grep
een uitvoer geeft zoals hierboven beschreven, bewerk het dan uit uw ~ / .bashrc-bestand.
Bewerken: van je laatste post-bewerking kun je zien dat je 2 regels hebt die beginnen met “exporteren, verwijder ze allebei f rom ~ / .bashrc.
Reacties
- Wat moet ik nu doen?
- Hier is
`
een backtick. Het OP had in plaats daarvan een‘
-teken. - @St é phaneChazelas Akkoord dat het commando syntactisch onjuist is. De bash-fout lijkt echter te wijten aan de regels in ~ / .bashrc.
- Strikt genomen is het commando syntactisch correct, maar het probeert toevallig een commando op te roepen (
‘export
) die niet kan worden gevonden. - @St é phaneChazelas Akkoord. Syntactisch correct als u een nieuw commando aanroept met de naam
‘export
, maar incorrect als uexport
probeert aan te roepen. We noemden ze typefout ‘ s. Een echte duivel om ze uit de papyrus te krijgen.
Antwoord
Ervan uitgaande dat je dat hebt gekopieerd en geplakt commando zoals het is, klaagt het over het ‘export
commando dat niet gevonden wordt waar dat ‘
de U + 2018 links is enkel aanhalingsteken niet-ASCII-teken (niet te verwarren met de ASCII "
apostrof / enkel aanhalingsteken (U + 0027) of ASCII `
backtick / grave accent (U + 0060) karakter).
Aangezien dat karakter op geen enkele manier speciaal is voor bash
, een opdrachtregel zoals:
‘export foo=bar’
(waarbij ’
U + 2019 is, het juiste enkele aanhalingsteken)
Wordt geïnterpreteerd als het uitvoeren van het ‘export
commando met foo=bar’
als argument. Had je geschreven:
"export foo=bar"
in plaats daarvan, dat wil zeggen met die U + 2018 en U + 2019 vervangen door ASCII-apostrof, een teken dat speciaal is voor bash
aangezien het een “citerende operator is, die zou zijn behandeld als het uitvoeren van het export foo=bar
commando zonder argument. Er is geen dergelijk commando. Dat is niet wat je ook wilt.
Jij wilt
export foo=bar
of
"export" "foo=bar"
Dat is om het export
commando uit te voeren met een foo=bar
argument.
Hier heb je om dat U + 2018-teken (en mogelijk het bijbehorende U + 2019-teken, indien van toepassing) te verwijderen, waar u het ook “in uw ~/.bashrc
of ergens anders hebt ingevoegd. Waar u die code ook hebt gekopieerd en geplakt , waren die karakters niet bedoeld om te worden gekopieerd.
Om erachter te komen waar dat nepcommando is geïntroduceerd, zo niet in ~/.bashrc
(hoewel je laatste bewerking laat zien dat het in je ~/.bashrc
inderdaad), zou je kunnen proberen:
env SHELLOPTS=xtrace \ BASH_XTRACEFD=7 \ PS4="[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> " \ 7> >(grep ‘) bash -l
(de $PS4
zou worden genegeerd door het draaien van shells als root
met bash-4.4 of nieuwer, wat echter jouw geval lijkt te zijn, daarom zie je ++
in plaats van de bestandsnaam en regelnummer).
Opmerkingen
- Wat moet ik nu doen?
- @MichaelSmith Je moet
~/.bashrc
, maar kijk daarvoor hier: unix.stackexchange.com/questions/399626 - @MichaelSmith, wat ik zei in het antwoord. Misschien wil je ook om wat tutorials te krijgen of te beginnen met een eenvoudiger Unix-achtig systeem voordat je een systeem gebruikt dat bedoeld is voor professionals
- @St é phane Chazelas Ik heb de code in antwoord van stackoverflow.com/questions/47304988/…
- @MichaelSmith Het OP gebruikt Kali, maar de fout is niet echt gerelateerd aan de distro. Zou ook zijn gebeurd met Ubuntu ….. don ‘ t copy paste