Подешавање и враћање вредности променљивих
У схелл команди басх, која је подразумевана љуска која се користи у Линуку, можете да поставите променљиву користећи општу синтаксу НАМЕ = ВАЛУЕ . На пример, у командној линији можете да куцате:
к = 5
И променљива именом к биће постављена на нумеричку вредност 5 . Имена променљивих могу бити у великим или малим словима, или мешавина оба, и осјетљива су на велика и мала слова. Када постављате варијаблу, не сме бити размака између назива варијабле, знака једнакости и вриједности.
Нема потребе да унапред декларишете променљиву или наведете њен тип података. Басх одређује тип варијабле на основу његове вредности.
На пример, наша променљива може да садржи и низ:
к = Здраво
За једноставан стринг, није неопходно да се стринг стави у наводнике, али ако стринг садржи размаке, морате га окружити двоструким наводницима:
к = "Здраво, Свијет!"
Да бисте вратили вредност променљиве, префиксите је знаком за долар. На пример, да бисте видели вредност к помоћу команде ецхо, покренули бисте:
ецхо $ к
Који излази:
Здраво Свете!
Овде се деси да љуска узме вредност ваше променљиве и убаци је у вашу команду. Можете се позивати на варијаблу било гдје у вашој наредби, чак и унутар двоструко наведеног низа:
ецхо "$ к $ к Може ли ме неко чути? Рекао сам, $ к"
Здраво Свете! Здраво Свете! Може ли ме неко чути? Рекао сам, Здраво, Свијет!
Савет: Варијабле се тумаче само унутар низа ако користите двоструке наводнике. Ако користите једноструке наводнике, име варијабле ће се тумачити дословно, без интерпретације:
ецхо '$ к $ к Да ли ме неко чује? Рекао сам, $ к '
$ к $ к Да ли ме неко чује? Рекао сам, $ к
Постављање вредности променљиве да буде излаз команде
Да бисте поставили вредност ваше променљиве да буде излаз одређене команде, користите форму:
НАМЕ = $ (ЦОММАНД)
На пример, ако је ваше корисничко име "стевен", извршавање команде вхоами ће вратити вредност стевен . Ово можете поставити на варијаблу:
минаме = $ (вхоами)
ецхо $ минаме
стевен
То можете да урадите за било коју команду. Ако команда узима аргументе, не морате да стављате команду у наводнике. Све унутар заграда ће се покренути као наредба:
к = "Здраво, Свијет!"
к = $ (ецхо $ к $ к $ к)
ецхо $ к
Здраво, Свијет, Здраво, Свијет!
Коришћење променљивих у једноставном скрипту
Да видимо како можемо да користимо променљиву у једноставној резервној скрипти. Рецимо да желите да направите резервну копију у документима директоријума у вашем хоме директоријуму. Скрипта ће архивирати све у том директоријуму, и све директоријуме у њему, у тар архиву чије име садржи тренутни датум. Хајде да чувамо резервне копије у директоријуму који се зове бацкуп у вашем хоме директоријуму (претпоставићемо да овај директоријум већ постоји.
Отворите уређивач текста и поставите овај текст у нову датотеку:
#! / бин / басх МИФИЛЕНАМЕ = ~ / бацкупс / доцументс-бацкуп - $ (дате +% И-% м-% д) .тар.гзтар -цзф $ ОУТПУТФИЛЕ ~ / документи
Погледајмо сваки ред овог скрипта. Прва линија, #! / Бин / басх, декларише скрипту као извршну датотеку и наводи да би требало да се покрене са / бин / басх, што је извршна датотека команде басх. Напомена: Датотека неће бити извршна док касније не направимо цхмод датотеку, али ова линија је потребна у било којем исправном басх скрипту.
Друга линија поставља променљиву МИФИЛЕНАМЕ, која ће садржати име архиве која садржи нашу резервну копију. Први дио назива датотеке је наш директориј сигурносних копија, ~ / бацкуп .
Напомена: Тилда знак ( ~ ) је специјално име директоријума који увек представља наш хоме директоријум.)
Затим имамо почетак имена датотеке, документе-бацкуп-а . Затим убацујемо тренутни датум користећи команду дате, плус знак и стринг формата датума % И-% м-% д . На пример, ако је датум био 23. фебруар 2015, то би се вратило 2015-02-23 .
Коначно, користимо екстензију .тар.гз, која је одговарајуће проширење имена датотеке за гзип-компримовану тар датотеку. Дакле, ако смо покренули ову скрипту 23. фебруара 2015., вриједност МИФИЛЕНАМЕ би била ~ / бацкупс / доцументс-бацкуп-2015-02-23.тар.гз . Ако смо га покренули 7. маја 2015, вредност би била ~ / бацкупс / доцументс-бацкуп-2015-05-07.тар.гз .
Трећа линија је наредба која креира архиву. Користимо тар наредбу с опцијом -цзф, која ће креирати ( ц ) гзип архиву ( з ) користећи специфицирано име датотеке ( ф ). Тада специфицирамо име архивске датотеке позивајући се на променљиву коју смо креирали у реду 2, ОУТПУТФИЛЕ . На крају, рецимо тар шта желимо да архивирамо: директоријум ~ / документи .
Да бисте покренули скрипту, сачувајте текстуални фајл у вашем хоме директоријуму (или било где где желите) и дајте му одговарајуће име, на пример, бацкуп-ми-доцс . Нема потребе да му се додаје име датотеке. Изађите из уређивача текста и направите извршну датотеку помоћу команде цхмод + к, на пример:
цхмод + к ~ / бацкуп-ми-доцс
Сада можете покренути скрипту. На пример, ако је скрипта у вашем радном директоријуму, можете је покренути са:
./бацкуп-ми-доцс
Или, ако се налази у вашем хоме директоријуму, можете га покренути из било ког директоријума помоћу наредбе:
~ / бацкуп-ми-доцс