Úvod do Bash skriptování
Alex Scriven
Data Scientist
Stejně jako v jiných jazycích lze proměnné přiřazovat pomocí znaku rovná se.
var1="Moon"
Odkaz na proměnnou se provádí zápisem $.
echo $var1
Moon
Pojmenujte proměnnou podle potřeby (smysluplně!):
firstname='Cynthia' lastname='Liu'echo "Hi there" $firstname $lastname
Hi there Cynthia Liu
Obě proměnné byly vráceny – výborně!
Pokud vynecháte zápis $, není to proměnná!
firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash není tolerantní k mezerám při vytváření proměnných. Pozor na přidání mezer!
var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
V Bash mají různé typy uvozovek různý význam – při vytváření i výpisu proměnných.
'sometext') = shell interpretuje obsah doslova"sometext") = shell interpretuje doslova, s výjimkou $ a zpětných apostrofů Posledním způsobem se vytvoří „shell uvnitř shellu", popsaný níže. Užitečné pro volání programů příkazové řádky. Používají se zpětné apostrofy.
Podívejme se na efekt různých způsobů vytváření proměnných
now_var='NOW'now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Program Date slouží k demonstraci zpětných apostrofů
Normální výstup tohoto programu:
date
Mon 2 Dec 2019 14:07:10 AEDT
Použijme nyní shell uvnitř shellu:
rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.
Program date byl zavolán, výstup zachycen a vložen přímo do volání echo.
Použili jsme shell uvnitř shellu!
Existuje ekvivalent k zápisu se zpětnými apostrofy:
rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.
Oba způsoby fungují stejně, zpětné apostrofy jsou však starší. Závorky se používají více v moderních aplikacích. (Viz http://mywiki.wooledge.org/BashFAQ/082)
Úvod do Bash skriptování