Prvé kroky s Elvish shell
Aby sme mohli vytvárať prvé skripty v Elvish shell, potrebujeme sa najprv zoznámiť s prostredím Elvish shell.
Prostredie Elvish shell zapneme zadaním elvish
do terminálu. Otvorí sa nám prostredie, do ktorého môžeme písať príkazy.
$elvish
Zapnutie prostredia Elvish shell
Určite nastane situácia, keď po dokončení všetkej vašej práce budete chcieť ukončiť Elvish shell a vrátiť sa späť k terminálu. Elvish shell viete zatvoriť príkazom exit
.
~>exit
Príkaz echo
Pri prvom skripte je zvykom začať vypísaním Hello world!
na obrazovku. Čiže využijeme štandardný výstup na vypísanie legendárnej hlášky Hello world!
. Na to použijeme príkaz echo
, ktorý je zabudovaný aj u iných interpretov príkazov.
~>echo Hello world!
Vypisujeme legendárnu hlášku Hello world!
Skúsme teraz vypísať nejakú vetu tak, že jednotlivé slova nebudú oddelené jednou medzerou, ale viacerými.
~>echo Dnes je vonku krasne slnecno!
Veta s rozostupmi medzi slovami
Medzi slovami sme dali tri medzery. Po spustení však vypíše príkaz echo
len s jednou medzerou medzi slovami. Totižto, jednotlivé slová berie príkaz echo
ako samostatné argumenty a tak dostaneme medzi slovami len jednu medzeru. Aby sme sa vyhli strate medzier, dáme celú vetu do úvodzoviek. Tak docielime, že príkaz echo
bude brať to, čo je medzi úvodzovkami, ako jeden argument.
~>echo "Dnes je vonku krasne slnecno!"
05pics.png Citácia textu do úvodzoviek
Tým, že sme dali úvodzovky, sme zacitovali text. Čiže nám to vypíše všetko, čo je v danej citácie.
Čo ak by sme chceli vypísať tri riadky nejakého textu, ale nechce sa vám písať trikrát príkaz echo
? Použijeme na to postupnosť znakov \n
. To nám zabezpečí po jeho využití nový riadok. Takže skúsme vypísať tri riadky textu s jedným využitím príkazu echo
.
~>echo "Hello world!\nMy name is Eduard.\nWhat is your name?\n"
Všimnite si, že sme i na konci poslednej vety dali nový riadok. Preto symbol riadku ~>
sa posunul o riadok nižšie.
Čo keby sme však pri využití postupností znakov \n
nedali do citácie ako text? Dostaneme aj tak tri vety v troch riadkoch?
~>echo "Hello world!\nMy name is Eduard.\nWhat is your name?\n"
Využitie nového riadku bez citácie textu
Objaví sa nám chybová hláška, pretože znak ?
je zároveň zástupným znakom, ktorý nahradzuje ľubovoľný jeden znak. Ďalším zástupným znakom je *
a nahradzuje ľubovoľný počet ľubovoľných znakov. Skúsme teraz použiť zástupný znak *
s očakávaním chybovej hlášky.
~>echo "Hello world!\nMy name is Eduard.\nWhat is your name*\n"
Použitie zástupného znaku *
bez citácie textu
Ak využijeme zástupný znak tak, že nájde existujúci súbor, chybová hláška sa neobjaví, viď. nasledujúci príklad.
S pomocou zástupného znaku *
objavíme existujúci súbor
Teraz to porovnáme s bash shell. Otvoríme terminál, kde je bash shell a v druhom termináli spustíme Elvish shell. Vyskúšame dva príklady, na ktorých môžeme pekne demonštrovať odlišnosť medzi bash shell a Elvish shell v prístupe k zástupným znakom.
Porovnanie bash shell s Elvish shell pri aplikovaní zástupných znakov
No a na záver sa vráťme k novému riadku bez citácie textu. Keďže zástupný znak nám urobil trocha problémy, tak ho v tomto prípade vynechajme. Inak odporúčam využívať citáciu textu, aby ste sa vyhli problémom so zástupnými znakmi.
~>echo "Hello world!\nMy name is Eduard.\nWhat is your name\n"
Ako si môžete povšimnúť, nový riadok nefunguje bez citácie textu. Preto využívajte citáciu textu nielen kvôli zástupným znakom, ale aj kvôli využití nového riadku, ale i ďalších špecifických postupností znakov.