Echo
- Hvad er echo
- Echo Kommandoindstillinger
- Versioner af echo
- Skrivning af tekst til terminalen
- Dato med echo
- Skrivning til filer med echo
- Udskrivning af filnavne med echo
Hvad er echo
Echo kommandoen er perfekt til at skrive formateret tekst til terminalvinduet. Og det behøver ikke at være statisk tekst. Det kan omfatte shell-variabler, filnavne og mapper. Du kan også omdirigere echo for at oprette tekstfiler og logfiler.
Der er en god chance for, at echo har nogle funktioner, som du ikke vidste noget om, eller som du har glemt.
Echo Kommandoindstillinger
Disse indstillinger kan specificeres før strengen og påvirke echo´s opførsel.
Flag | Betyder |
---|---|
-n | Send ikke en bageste ny linje, som betyder den udskriver strengen og går ikke til den nye linje efter den (som er standardopførsel), så output fra den næste kommando udskrives i højre side af echo-strengen. |
-e | Aktivér fortolkning af sekvenser for backslash escape (se nedenfor for en liste over disse). |
-E | Deaktiver fortolkning af backslash- escapesekvenser. Dette er standard. |
Muligheder
Hvis der er angivet en lang mulighed, angiver du muligvis ikke en streng, der skal gentages. Disse indstillinger er kun til at få information om programmet.
Flag | Betyder |
---|---|
--help | Vis en hjælpemeddelelse og afslut. |
--version | Information om outputversion og afslut. |
Escape sekvenser
Hvis du specificerer flaget -e, genkendes følgende escape-sekvenser i din streng:
Sekvens | Fortolket som |
---|---|
\\ | Backslash tegn ("\"). |
\a | En alarm (KLOKKE-tegnet). |
\b | Backspace. |
\c | Laver ingen yderligere output efter dette. |
\e | Escape-karakteren; svarende til at trykke på escape-tasten. |
\f | En form feed. ( betyder indsæt et sideskift) |
\n | En ny linje. |
\r | En vognretur(betyder at vende tilbage til begyndelsen af den aktuelle linje uden at gå nedad). |
\t | En vandret tab. |
\v | En lodret tab. |
\0NNN | Byte med oktal værdi NNN (som kan være 1 til 3 cifre). |
\xHH | Byte med hexadecimal værdi HH (som enten kan være 1 eller 2 cifre) |
Versioner af echo
De fleste Linux-systemer leverer to versioner af echo. Bash-skallen har sit eget indbygget i det, og der er også en binær eksekverbar version af echo.
Men kshog csh implementerer echo som en indbygget kommando. Udførelsen af indbyggede echo-kommandoer er ens, men indstillingerne kan være forskellige. Disse kommandoer er ikke dokumenteret her. Her er eksemplerne udført i Bash.
Vi kan se de to forskellige versioner i bash ved hjælp af følgende kommandoer.
$ type echo
Type-kommandoen fortæller os, at echo er en indbygget shell.
$ whereis echo
Whereis-kommandoen ser efter den binære eksekverbare, kildekode og man-side for den kommando. Den rapporterer også , at ekko er en binær eksekverbar, der findes i biblioteket /bin.
For at se version af echo.
$ /bin/echo --version
Skrivning af tekst til terminalen
For at skrive en simpel tekststreng til terminalvinduet skal du skrive echo og den streng, du vil have, at den skal vise
$ echo Mit navn er Carl
Indpakning af din tekst i dobbelt citatmærker er et godt generelt råd. I scripts afgrænser det rent de parametre, du sender til echo. Dette gør læsning - og fejlsøgning - scripts meget lettere.
Lad os se på et eksempel.
$ echo "Mit navn er Carl Andersen og jeg er på steroider."
Hvad hvis du vil inkludere et dobbelte citat tegn i din tekststreng. Det er let, bare sæt en backslash \ foran dobbelt citatmærket (uden mellemrum mellem dem).
$ echo "Mit navn er Carl Andersen og jeg er på\"steroider.\""
Flaget '-e' i Linux fungerer som fortolkning at ungå tegn, der er indpakket i teksten.
Brug af flaget '\b' - backspace med fortolkeren '-e', fjerner alle mellemrum imellem.
$ echo -e "Carl \ber \ben \bnørd \binden \bfor \bLinux"
Brug af flaget ‘\n‘ - laver ny linje med fortolkeren ‘-e’ for hvert ord.
$ echo -e "Carl \ner \nen \nnørd \ninden \nfor \nLinux"
Flaget '\t' - vandret tab med fortolkeren '-e' for at have vandrette tabs.
$ echo -e "Carl \ter \ten \tnørd \tinden \tfor \tLinux"
Hvad hvis vi bruger ny linje '\n' og den vandrette tab '\t' samtidigt, så sker der noget andet.
$ echo -e "\n\tCarl \n\ter \n\ten \n\tnørd \n\tinden \n\tfor \n\tLinux"
Nu er teksten indrykket med en ny linje for hvert ord.
Flaget '\v' - lodret tab med forolkeren '-e' laver lodrette tab afstande.
$ echo -e "\vCarl \ver \ven \vnørd \vinden \vfor \vLinux"
Hvis vi bruger ny linje '\n' og lodret tab '\v' på samme tid, så sker der noget andet.
$ echo -e "\n\vCarl \n\ver \n\ven \n\vnørd \n\vinden \n\vfor \n\vLinux"
Nu er der blevet dobbelt linjeafstand. Du kan fordoble den lodrette tab, og den vandrette tab og den nye linjeafstand ved hjælp af indstillingen to gange eller så mange gange som krævet, f.eks.
$ echo -e "\v\n\t\v\n\tCarl \v\n\t\v\n\ter \v\n\t\v\n\ten \v\n\t\v\n\tnørd \v\n\t\v\n\tinden \v\n\t\v\n\tfor \v\n\t\v\n\tLinux"
Her er det lodret tab med indrykning og dobbelt linjeafstand
Flaget '\r' - vognretur med fortolkeren '-e' for at angive vognretur i output.
$ echo -e "Carl \rer en nørd inden for Linux"
Brug af flaget '\c' - undertrykker efterfølgende ny linje med fortolkeren '-e' for at fortsætte uden at vise en ny linje.
$ echo -e "Carl er en nørd \cinden for Linux"
Undlad at gentage efterfølgende ny linje ved hjælp af flaget '-n'.
$ echo -n "Carl er en nørd inden for Linux"
Flaget'\a' - alarmretur med fortolkeren '-e' for at lave lydalarm. Husk at skrue ned for lyden, inden du udfører denne kommando.
$ echo -e "Carl er en nørd inden for \aLinux"
Vis alle filer/mapper i dit hjemmebibliotek vha. echo-kommandoen.
$ echo *
Brug ANSI-sekvenser til at ændre forgrunds- og baggrundsfarver eller indstille tekstegenskaber som understregning og fed. Her eksempler.
$ echo -e "\033[1;37mWHITE"
$ echo -e "\033[0;30mBLACK"
$ echo -e "\033[0;34mBLUE"
$ echo -e "\033[0;32mGREEN"
$ echo -e "\033[0;36mCYAN"
$ echo -e "\033[0;31mRED"
$ echo -e "\033[0;35mPURPLE"
$ echo -e "\033[0;33mYELLOW"
$ echo -e "\033[1;30mGRAY"
Følgende kommando returnerer navnene på alle .php-filer i det aktuelle bibliotek.
$ echo PHP filerne er: *.php
Vis billedfiler i det aktuelle bibliotek. F.eks.‘.jpg’-filer, brug så følgende kommando.
$ echo *.jpg
Dato med echo
Følgende kommandoer viser dato.
$ echo "Datoen er: $(date +%D)"
Eller
$ echo "Hej, idag er det" `date`
Eller
$ echo "Hej, i dag er det $(date)"
Og så den sidste med dato
$ echo I dag er det=`date +%Y-%d-%m.%H:%M:%S`
Dato kommando formatstreng
- %Y - År
- %d - Dag
- %m - Måned
- %H - Time
- %M - Minutter
- %S - Sekunder
Skrivning til filer med echo
Du kan omdirigere output fra echo og enten oprette tekstfiler eller skrive til eksisterende tekstfiler.
Hvis vi bruger > omdirigeringsoperatøren, oprettes filen, hvis den ikke findes. Hvis filen findes, tilføjes output fra ekko i starten af filen, hvilket overskriver ethvert tidligere indhold.
Jeg opretter en teksfil med cat med følgende kommando cat> Dansk_sang.txt, herefter slår jeg enter og Ctrl+d for at gemme den.
Nu skal vi have tilføjet noget tekst til filen.
$ echo -e "I Danmark er jeg født, dér har jeg hjemme\n Der har jeg rod, derfra min verden går." > Dansk_sang.txt
Du kan nu se indholdet af filen med følgende kommando.
$ cat Dansk_sang.txt
Hvis vi bruger omdirigeringsoperatøren >>, så vil outputet fra echo føjes til slutningen af filen og overskriver ikke noget eksisterende indhold af filen.
$ echo -e "Du danske sprog, du er min moders stemme\n Så sødt velsignet du mit hjerte når." >> Dansk_sang.txt
Du kan nu se indholdet af filen med følgende kommando.
$ cat Dansk_sang.txt
Du kan nu se at det sidste tekst er blevet tilføjet under det første, og intet er overskrevet.
Udskrivning af filnavne med echo
Du kan også udskrive filnavne ved hjælp af wildcards og echo kommandoen.
Lad os sige at vi vil se indholdet af config filer i /etc.
$ cd /etc
Og derefter
$ echo *.conf
Det var så alt for denne gang, der kommer mere senere.
Alle eksempler er uført i, PCLinuxOS.