Hvordan Bruke Echo Kommandoen På Linux
echo
Kommandoen er perfekt for å skrive formatert tekst til terminalvinduet. Det trenger ikke være statisk tekst. Det kan inkludere shell variabler, filnavn og kataloger. Du kan også omdirigere echo for å lage tekstfiler og loggfiler. Følg denne enkle veiledningen for å finne ut hvordan.
Ekko Gjentar hva Du Forteller Det Å Gjenta
Zeus var glad i å forlate Mount Olympus for å gifte seg med vakre nymfer. På en tur, han fortalte en fjell nymfe kalt Echo til waylay sin kone, Hera, hvis hun fulgte ham. Hera kom på Jakt Etter Zeus, Og Echo gjorde alt hun kunne for å holde Hera i samtale. Til Slutt mistet Hera sitt temperament og forbannet dårlig Ekko, slik at hun bare gjentar de siste ordene som noen andre hadde sagt. Hva Hera gjorde Med Zeus da hun fanget opp med ham, er noen gjetning.
og det er ganske mye echo
‘ s mye i livet. Det gjentar hva det har blitt fortalt å gjenta. Det er en enkel funksjon, men en viktig en. Uten echo
, ville vi ikke kunne få synlig utgang fra skallskript, for eksempel.
mens ikke lastet ned med en rekke bjeller og fløyter, er det en god sjanse for at echo
har noen evner som du ikke visste om eller at du hadde glemt.
ekko? echo!
De Fleste Linux-systemer har to versjoner av echo
. Bash-skallet har sin egen echo
innebygd i Den, og det er også en binær kjørbar versjon av echo
.
Vi kan se de to forskjellige versjonene ved å bruke følgende kommandoer:
type echo
whereis echo
type
kommandoen forteller oss om kommandoen Vi Overfører til den som argumentet er et skall innebygd, en binær kjørbar, et alias eller en funksjon. Det rapporterer til oss atecho
er et skall innebygd.
så snart den har funnet svar, type
slutter å lete etter flere treff. Så det forteller oss ikke om det finnes andre kommandoer med samme navn i systemet. Men det forteller oss hvilken den finner først. Og det er den som vil bli brukt som standard når vi utsteder den kommandoen.
kommandoenwhereis
ser etter den binære kjørbare, kildekoden og man-siden for kommandoen vi overfører til den som sin kommandolinjeparameter. Det ser ikke etter shell builtins fordi de ikke har en egen binær kjørbar. De er en integrert del Av Bash kjørbar.
kommandoenwhereis
rapporterer at echo
er en binær kjørbar fil som ligger i/bin
katalogen.
for å bruke den versjonen av echo
du må eksplisitt kalle det ved å gi banen til kjørbar på kommandolinjen:
/bin/echo --version
--version
kommandolinjeargument er, det gjentar det bare i terminalvinduet:
echo --version
eksemplene som vises her, bruker alle standardversjonen av
echo
, I Bash-skallet.
Skrive Tekst til Terminalen
for å skrive en enkel tekststreng til terminalvinduet, skrivecho
og strengen du vil at den skal vise:
echo My name is Dave.
teksten gjentas for oss. Men når du eksperimenterer, vil du snart oppdage at ting kan bli litt mer komplisert. Se på dette eksemplet:
echo My name is Dave and I'm a geek.
terminalvinduet viser en >
signer og sitter der og venter. Ctrl + C vil returnere deg til ledeteksten. Hva skjedde der?
enkelt sitat eller apostrof i ordet «jeg er» forvirret echo
. Det tolket at enkelt sitat som starten på en sitert del av teksten. Fordi det ikke oppdaget et avsluttende enkelt sitat, ventet echo
på mer inngang. Det forventet at ytterligere innspill til å inkludere den manglende enkelt sitat det var ventet på.
for å inkludere et enkelt sitat i en streng, er den enkleste løsningen å pakke hele strengen i doble anførselstegn:
echo "My name is Dave and I'm a geek."
Innpakning av teksten i doble anførselstegn er gode generelle råd. I skript avgrenser det rent parametrene du sender til echo
. Dette gjør lesing—og debugging—skript mye enklere.
Hva om du vil inkludere et dobbelt anførselstegn i tekststrengen din? Det er enkelt, bare sett en backslash \
foran det doble sitatmerket(uten mellomrom mellom dem).
echo "My name is Dave and I'm a \"geek.\""
dette bryter ordet «geek» i doble anførselstegn for oss. Vi vil se flere av disse backslash-rømte tegnene snart.
Ved Hjelp Av Variabler med ekko
Så langt har Vi skrevet forhåndsdefinert tekst til terminalvinduet. Vi kan bruke variabler med echo
for å produsere utdata som er mer dynamisk og har verdier satt inn i det for oss av skallet. Vi kan definere en enkel variabel med denne kommandoen:
my_name="Dave"
en variabel kaltmy_name
er opprettet. Det har blitt tildelt verdien av teksten » Dave.»Vi kan bruke variabelnavnet i strengene som vi sender til echo
, og verdien av variabelen vil bli skrevet til terminalvinduet. Du må sette et dollartegn $
foran variabelnavnet for å la echo
vet at det er en variabel.
Det er en advarsel. Hvis du har pakket strengen din i enkle anførselstegn echo
vil behandle alt bokstavelig. Hvis du vil at variabelverdien skal vises, og ikke navnet på variabelen, bruker du doble anførselstegn.
echo 'My name is $my_name'
echo "My name is $my_name"
RELATERT: Hvordan Jobbe Med Variabler I Bash
Ved Hjelp Av Kommandoer med ekko
Vi Kan bruke en kommando med echo
og innlemme utgangen i strengen som er skrevet til terminalvinduet. Vi må bruke dollartegnet $
som om kommandoen var en variabel, og pakk hele kommandoen i parentes.
vi skal bruke datokommandoen. Et tips er å bruke kommandoen på egen hånd før du begynner å bruke den med echo
. På den måten, hvis det er noe galt med syntaksen til kommandoen din, identifiserer du den og retter den før du inkluderer den i kommandoenecho
. Så, hvis kommandoenecho
ikke gjør det du forventer, vet du at problemet må være med syntaksen forecho
fordi du allerede har bevist kommandoens syntaks.
så prøv dette i terminalvinduet:
date +%D
echo "Today's date is: $(date +%D)"
merk kommandoen er inne i parentesene og dollartegnet$
er umiddelbart før den første parentesen.
Formatere Tekst med ekko
-e
(aktiver backslash escapes) alternativet lar oss bruke noen backslash-rømte tegn for å endre utformingen av teksten. Dette er backslash-rømte tegn vi kan bruke:
La oss bruke noen av dem og se hva de gjør.
echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"
teksten er delt inn i en ny linje der vi har brukt\n
tegn og en fane er satt inn der vi har brukt\t
tegn.
echo -e "Here\vare\vvertical\vtabs"
\n
nye linjetegn, en vertikal fane\v
flytter teksten til linjen nedenfor. Men i motsetning til\n
nye linjetegn, starter ikke den vertikale kategorien\v
den nye linjen ved kolonne null. Den bruker gjeldende kolonne.
\b
backspace-tegn flytter markøren tilbake ett tegn. Hvis det er mer tekst som skal skrives til terminalen, vil teksten overskrive det forrige tegnet.
echo -e "123\b4"
«3» er overskrevet av «4».
\r
linjeskift forårsaker echo
for å gå tilbake til starten av gjeldende linje og skrive ytterligere tekst fra kolonne null.
echo -e "123\r456"
de «123 «tegnene blir overskrevet av» 456 » tegnene.
\a
alert tegnet vil produsere en hørbar » bleep.»Den bruker standard alert lyd for din nåværende tema .
echo -e "Make a bleep\a"
-n
(ingen ny linje) alternativet er ikke en omvendt skråstrek-rømt sekvens, men det påvirker kosmetikk av tekst layout, så vi vil diskutere det her. Det forhindrerecho
fra å legge til en ny linje til slutten av teksten. Ledeteksten vises rett etter teksten som er skrevet til terminalvinduet.
echo -n "no final newline"
Bruke ekko Med Filer og Kataloger
du kan bruke echo
som en slags fattig manns versjon avls
. Alternativene dine er få og langt mellom når du bruker echo
som dette. Hvis du trenger noen form for troskap eller fin kontroll, er du bedre å bruke ls
og dens legion av alternativer.
denne kommandoen viser alle filene og katalogene i gjeldende katalog:
echo *
denne kommandoen viser alle filene og katalogene i gjeldende katalog hvis navn starter med» D»:
echo D*
denne kommandoen viser alle «.desktop » filer i gjeldende katalog:
echo *.desktop
Ja. Dette spilles ikke tilecho
‘s styrker. Bruk ls
.
Skrive Til Filer med echo
vi kan omdirigere utdataene fra echo
og enten lage tekstfiler eller skrive inn eksisterende tekstfiler.
hvis vi bruker >
omdirigeringsoperatør, opprettes filen hvis den ikke eksisterer. Hvis filen eksisterer, legges utdataene fra echo
til i starten av filen, og overskriver eventuelt tidligere innhold.
hvis vi bruker operatoren >>
omdirigering, opprettes filen hvis den ikke finnes. Utdataene fra echo
legges til på slutten av filen og overskriver ikke eksisterende innhold i filen.
echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
en ny fil opprettes av den første kommandoen, og tekst settes inn i den. Den andre kommandoen legger til en linje med tekst nederst i filen. Kommandoencat
viser innholdet i filen til terminalvinduet.
og selvfølgelig kan vi inkludere variabler for å legge til nyttig informasjon i filen vår. Hvis filen er en loggfil, vil vi kanskje ha et tidsstempel lagt til det. Vi kan gjøre det med neste kommando.
Merk enkelt anførselstegn rundt parametrene for kommandoendate
. De forhindrer mellomrom mellom parametrene som tolkes som slutten av parameterlisten. De sikrer at parametrene sendes tildate
riktig.
echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt
Vår loggfil er opprettet for oss ogcat
viser oss at datostempel og tidsstempel ble begge lagt til det.
RELATERT: Hva er stdin, stdout og stderr På Linux?
det er ekko Repertoar
en enkel kommando, men uunnværlig. Hvis det ikke eksisterte, måtte vi finne det opp.
Zeus ‘ s shenanigans gjorde noe bra, tross alt.