Jak Použít Příkaz Echo na Linuxu

Fatmawati Achmad Zaenuri/

echo příkaz je ideální pro psaní formátovaného textu do okna terminálu. A nemusí to být statický text. Může obsahovat proměnné prostředí, názvy souborů a adresáře. Můžete také přesměrovat echo k vytváření textových souborů a souborů protokolu. Postupujte podle tohoto jednoduchého průvodce a zjistěte jak.

Echo Opakuje to, Co řeknete To Opakovat

Zeus byl rád opouští Olymp stýkat s krásnými nymfy. Na jedné cestě, řekl horské nymfě zvané Echo, aby cestovala svou ženou, Hera, kdyby ho následovala. Hera přišla hledat Zeuse, a Echo udělala vše, co mohla, aby udržela Heru v rozhovoru. Nakonec Hera ztratila náladu a proklela špatnou ozvěnu, takže opakovala pouze poslední slova, která řekl někdo jiný. To, co Hera udělala Zeusovi, když ho dohonila, je někdo hádat.

a to je do značné míry echo‚s lot in life. Opakuje to, co bylo řečeno opakovat. To je jednoduchá funkce, ale zásadní. Bez echo bychom například nemohli získat viditelný výstup ze skriptů shellu.

Zatímco není naložený s mnoha zvonky a píšťalky, tam je dobrá šance, že echo má některé funkce, které jste nevěděli, nebo že jsi na to zapomněl.

echo? ozvěna!

většina linuxových systémů poskytuje dvě verze echo. Bash shell má svůj vlastní echo vestavěný do něj, a tam je binární spustitelný verze echo stejně.

můžeme vidět dvě různé verze pomocí následujících příkazů:

type echo
whereis echo

type příkaz nám říká, zda příkaz míjíme jako její argument je shell builtin, binární spustitelný soubor, alias nebo funkci. Hlásí nám, že echo je shell builtin.

jakmile najde odpověď, type přestane hledat další shody. Takže nám neříká, zda v systému existují další příkazy se stejným názvem. Ale říká nám, který z nich najde první. A to je ten, který bude ve výchozím nastavení použit, když vydáme tento příkaz.

příkaz whereis hledá binární spustitelný soubor, zdrojový kód a manuálovou stránku pro příkaz, který mu předáme jako parametr příkazového řádku. Nehledá Shell builtins, protože nemají samostatný binární spustitelný soubor. Jsou nedílnou součástí spustitelného souboru Bash.

whereis příkaz zprávy, že echo je binární spustitelný soubor se nachází v /bin adresář.

Chcete-li použít tuto verzi, echo musíte explicitně volat to tím, že poskytuje cestu ke spustitelnému souboru na příkazovém řádku:

/bin/echo --version

shell builtin neví, co --version command-line argument je, že jen opakuje to, v okně terminálu:

echo --version

zde uvedené příklady všechny použít výchozí verze echo, v Bash shellu.

Psaní Textu na Terminálu

napsat jednoduchý textový řetězec do okna terminálu zadejte echo a řetězec, který chcete zobrazit:

echo My name is Dave.

text, který se opakuje pro nás. Ale jak experimentujete, brzy zjistíte, že věci se mohou trochu komplikovat. Podívejte se na tento příklad:

echo My name is Dave and I'm a geek.

okno terminálu zobrazí> podepíše a čeká. Ctrl + C vás vrátí na příkazový řádek. Co se tam stalo?

jediný citát nebo apostrof ve slově „jsem“ zmatený echo. Tento jediný citát interpretoval jako začátek citované části textu. Vzhledem k tomu, že nezjistil závěrečnou jednu nabídku, echo čekal na další vstup. Očekával, že další vstup bude obsahovat chybějící jedinou citaci, na kterou čekal.

zahrnout uvozovky v řetězci, nejjednodušší řešení je zabalit celý řetězec do dvojitých uvozovek:

echo "My name is Dave and I'm a geek."

Obtékání textu ve dvojité uvozovky, je dobré obecné rady. Ve skriptech čistě vymezuje parametry, které předáváte echo. Díky tomu je čtení—a ladění—skripty mnohem jednodušší.

Co když chcete do řetězce textu zahrnout znak dvojité citace? To je snadné, stačí dát zpětné lomítko \ před značku dvojité citace(bez mezery mezi nimi).

echo "My name is Dave and I'm a \"geek.\""

toto pro nás zabalí slovo „geek“ do dvojitých uvozovek. Brzy uvidíme více těchto znaků uniklých zpětným lomítkem.

pomocí proměnných s ozvěnou

zatím jsme psali předdefinovaný text do okna terminálu. Proměnné s echo můžeme použít k vytvoření dynamičtějšího výstupu, který má hodnoty vložené do shellu. Pomocí tohoto příkazu můžeme definovat jednoduchou proměnnou:

my_name="Dave"

byla vytvořena proměnná nazvaná my_name. Byla mu přiřazena hodnota textu “ Dave.“Můžeme použít název proměnné v řetězcích, které předáme echo, a hodnota proměnné bude zapsána do okna terminálu. Musíte dát znak dolaru $ před název proměnné echo vím, že to je variabilní.

je zde upozornění. Pokud jste řetězec zabalili do jediné uvozovky echo, bude vše zacházet doslova. Chcete-li zobrazit hodnotu proměnné, nikoli název proměnné, použijte dvojité uvozovky.

echo 'My name is $my_name'
echo "My name is $my_name"

Poněkud příhodně, že to stojí za opakování:

  • Pomocí jediné uvozovky výsledky v textu je napsáno na okně terminálu v doslovném způsobem.
  • použití dvojitých uvozovek vede k interpretaci proměnné-nazývané také rozšíření proměnné – a hodnota je zapsána do okna terminálu.

SOUVISEJÍCÍ: Jak Pracovat s Proměnnými v Bash

Pomocí Příkazů echo

můžeme použít příkaz echo a začlenit jeho výstup do řetězce, který je zapsán do okna terminálu. Musíme použít znak dolaru $, jako by příkaz byl proměnnou, a celý příkaz zabalit do závorek.

použijeme příkaz date. Jeden tip je použít příkaz sám, než jej začnete používat s echo. Tímto způsobem, pokud tam je něco špatně s syntaxe příkazu, můžete identifikovat a opravit, než jej zahrnout do echo příkaz. Pak, pokud echo příkaz nedělá to, co očekáváte, budete vědět, že problém musí být u echo syntaxe, protože jsi dokázal, že příkaz má syntaxi.

zkuste to v okně terminálu:

date +%D

A, spokojen, že dostáváme to, co očekáváme od data příkazu, budeme integrovat to do echo příkaz:

echo "Today's date is: $(date +%D)"

Poznámka: příkaz je uvnitř závorky a znak dolaru $ je bezprostředně před první závorku.

Formátování Textu S echo

-e (povolit zpětné lomítko uniká) možnost nám umožňuje použít některé zpětné lomítko-uvozena znaky změnit rozložení textu. Toto jsou znaky uniklé zpětným lomítkem, které můžeme použít:

pojďme použít některé z nich a uvidíme, co dělají.

echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"

text je rozdělen do nové linky, kde jsme použili \n postavy a karta je vložena, kde jsme použili \t znaky.

echo -e "Here\vare\vvertical\vtabs"

\n nový řádek znaky, vertikální tabulátor \v přesune text do řádku níže. Ale na rozdíl od \n nové řádkové znaky,\v vertikální karta nespustí nový řádek ve sloupci nula. Používá aktuální sloupec.

znaky\b backspace přesouvají kurzor zpět o jeden znak. Pokud je do terminálu zapsáno více textu, přepíše tento text předchozí znak.

echo -e "123\b4"

„3“ je u konce-napsaný „4“.

\r carriage return charakter způsobuje echo pro návrat na začátek aktuálního řádku a napsat jakýkoli další text ze sloupce nula.

echo -e "123\r456"

„123“ znaky jsou přepsány „456“ znaky.

\a výstražný znak vytvoří slyšitelné “ pípnutí.“Používá výchozí zvuk upozornění pro vaše aktuální téma.

echo -e "Make a bleep\a"

-n (ne řádek) možnost není zpětné lomítko-utekl sekvence, ale to nemá vliv na kosmetiku z rozvržení textu, tak to probereme zde. Zabraňuje echo Přidat nový řádek na konec textu. Příkazový řádek se zobrazí přímo za textem, který je zapsán do okna terminálu.

echo -n "no final newline"

Pomocí echo se Soubory a S adresáři

můžete použít echo jako jakýsi chudý muž verze ls. Vaše možnosti jsou málo a daleko od sebe, když použijete echo takhle. Pokud potřebujete jakýkoli druh věrnosti nebo jemné kontroly, je lepší použít ls a jeho legii možností.

Tento příkaz vypíše všechny soubory a adresáře v aktuálním adresáři:

echo *

Tento příkaz vypíše všechny soubory a adresáře v aktuálním adresáři, jejichž jméno začíná na „D“ :

echo D*

Tento příkaz vypíše všechny „.desktop“ soubory v aktuálním adresáři:

echo *.desktop

Ano. To není hraní na echosilné stránky. Použijte ls.

zápis do Souborů s echo

můžete přesměrovat výstup z echo a buď vytvořit textové soubory, nebo napište do existující textové soubory.

pokud použijeme > operátor přesměrování, soubor se vytvoří, pokud neexistuje. Pokud soubor existuje, výstup z echo se přidá na začátek souboru a přepíše jakýkoli předchozí obsah.

pokud použijeme >> operátor přesměrování, soubor se vytvoří, pokud neexistuje. Výstup z echo je přidán na konec souboru a nepřepíše žádný existující obsah souboru.

echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt

nový soubor je vytvořen první příkaz, a text se vkládá do něj. Druhý příkaz přidá řádek textu do dolní části souboru. Příkaz cat zobrazí obsah souboru do okna terminálu.

a samozřejmě můžeme zahrnout proměnné pro přidání některých užitečných informací do našeho souboru. Pokud je soubor logfile, možná budeme chtít přidat časové razítko. Můžeme to udělat s dalším příkazem.

poznamenejte si jednotlivé uvozovky kolem parametrů pro příkaz date. Zabraňují tomu, aby byl prostor mezi parametry interpretován jako konec seznamu parametrů. Zajišťují správné předání parametrů date.

echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt

Náš log je vytvořen pro nás, a cat nám ukazuje, že datestamp a časové razítko byli oba k ní přidá.

SOUVISEJÍCÍ: Co jsou stdin, stdout a stderr na Linuxu?

to je repertoár echo

jednoduchý příkaz, ale nepostradatelný. Kdyby neexistovala, museli bychom ji vymyslet.

Zeusovy vylomeniny nakonec udělaly něco dobrého.



Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.