Вступ до Bash Scripting
Alex Scriven
Data Scientist
Як і в інших мовах, змінні можна присвоювати через знак рівності.
var1="Moon"
Далі звертайтесь через позначення $.
echo $var1
Moon
Назвіть змінну як зручно (але змістовно):
firstname='Cynthia' lastname='Liu'echo "Hi there" $firstname $lastname
Hi there Cynthia Liu
Обидві змінні виведено — чудово!
Якщо пропустите $, це вже не змінна!
firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash не прощає пробіли під час створення змінних. Уникайте пробілів!
var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
У Bash різні лапки означають різне. І при створенні змінних, і при виведенні.
'sometext') = оболонка сприймає вміст буквально"sometext") = буквально, окрім використання $ і зворотних лапок Останній варіант створює «оболонку в оболонці», як нижче. Корисно для виклику програм командного рядка. Це робиться зворотними лапками.
Подивімося ефект різних способів створення змінних
now_var='NOW'now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Програма date зручна для демонстрації зворотних лапок
Звичайний вивід цієї програми:
date
Mon 2 Dec 2019 14:07:10 AEDT
Скористаймося тепер «оболонкою в оболонці»:
rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.
Програму date викликано, вивід захоплено й вставлено в рядок з викликом echo.
Ми використали оболонку в оболонці!
Є еквівалент позначення зворотних лапок:
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.
Обидва працюють однаково, але зворотні лапки — старіший підхід. Дужки частіше використовують у сучасних застосунках. (Див. http://mywiki.wooledge.org/BashFAQ/082)
Вступ до Bash Scripting