Како се варијабла одржава у Линуку?

Командна линија оперативног система Линук је моћан алат који је, у основи, преводилац програмског језика. Као и са било којим другим програмским језиком, командна љуска вам дозвољава да користите варијабле за складиштење, преузимање и манипулисање подацима.

Подешавање и враћање вредности променљивих

У схелл команди басх, која је подразумевана љуска која се користи у Линуку, можете да поставите променљиву користећи општу синтаксу НАМЕ = ВАЛУЕ . На пример, у командној линији можете да куцате:

 к = 5 

И променљива именом к биће постављена на нумеричку вредност 5 . Имена променљивих могу бити у великим или малим словима, или мешавина оба, и осјетљива су на велика и мала слова. Када постављате варијаблу, не сме бити размака између назива варијабле, знака једнакости и вриједности.

Нема потребе да унапред декларишете променљиву или наведете њен тип података. Басх одређује тип варијабле на основу његове вредности.

На пример, наша променљива може да садржи и низ:

 к = Здраво 

За једноставан стринг, није неопходно да се стринг стави у наводнике, али ако стринг садржи размаке, морате га окружити двоструким наводницима:

 к = "Здраво, Свијет!" 

Да бисте вратили вредност променљиве, префиксите је знаком за долар. На пример, да бисте видели вредност к помоћу команде ецхо, покренули бисте:

 ецхо $ к 

Који излази:

 Здраво Свете! 

Овде се деси да љуска узме вредност ваше променљиве и убаци је у вашу команду. Можете се позивати на варијаблу било гдје у вашој наредби, чак и унутар двоструко наведеног низа:

 ецхо "$ к $ к Може ли ме неко чути? Рекао сам, $ к" 
 Здраво Свете! Здраво Свете! Може ли ме неко чути? Рекао сам, Здраво, Свијет! 

Савет: Варијабле се тумаче само унутар низа ако користите двоструке наводнике. Ако користите једноструке наводнике, име варијабле ће се тумачити дословно, без интерпретације:

 ецхо '$ к $ к Да ли ме неко чује? Рекао сам, $ к ' 
 $ к $ к Да ли ме неко чује? Рекао сам, $ к 

Постављање вредности променљиве да буде излаз команде

Да бисте поставили вредност ваше променљиве да буде излаз одређене команде, користите форму:

 НАМЕ = $ (ЦОММАНД) 

На пример, ако је ваше корисничко име "стевен", извршавање команде вхоами ће вратити вредност стевен . Ово можете поставити на варијаблу:

 минаме = $ (вхоами) 
 ецхо $ минаме 
 стевен 

То можете да урадите за било коју команду. Ако команда узима аргументе, не морате да стављате команду у наводнике. Све унутар заграда ће се покренути као наредба:

 к = "Здраво, Свијет!" 
 к = $ (ецхо $ к $ к $ к) 
 ецхо $ к 
 Здраво, Свијет, Здраво, Свијет! 

Коришћење променљивих у једноставном скрипту

Да видимо како можемо да користимо променљиву у једноставној резервној скрипти. Рецимо да желите да направите резервну копију у документима директоријума у ​​вашем хоме директоријуму. Скрипта ће архивирати све у том директоријуму, и све директоријуме у њему, у тар архиву чије име садржи тренутни датум. Хајде да чувамо резервне копије у директоријуму који се зове бацкуп у вашем хоме директоријуму (претпоставићемо да овај директоријум већ постоји.

Отворите уређивач текста и поставите овај текст у нову датотеку:

 #! / бин / басх МИФИЛЕНАМЕ = ~ / бацкупс / доцументс-бацкуп - $ (дате +% И-% м-% д) .тар.гз 

тар -цзф $ ОУТПУТФИЛЕ ~ / документи

Погледајмо сваки ред овог скрипта. Прва линија, #! / Бин / басх, декларише скрипту као извршну датотеку и наводи да би требало да се покрене са / бин / басх, што је извршна датотека команде басх. Напомена: Датотека неће бити извршна док касније не направимо цхмод датотеку, али ова линија је потребна у било којем исправном басх скрипту.

Друга линија поставља променљиву МИФИЛЕНАМЕ, која ће садржати име архиве која садржи нашу резервну копију. Први дио назива датотеке је наш директориј сигурносних копија, ~ / бацкуп .

Напомена: Тилда знак ( ~ ) је специјално име директоријума који увек представља наш хоме директоријум.)

Затим имамо почетак имена датотеке, документе-бацкуп-а . Затим убацујемо тренутни датум користећи команду дате, плус знак и стринг формата датума % И-% м-% д . На пример, ако је датум био 23. фебруар 2015, то би се вратило 2015-02-23 .

Коначно, користимо екстензију .тар.гз, која је одговарајуће проширење имена датотеке за гзип-компримовану тар датотеку. Дакле, ако смо покренули ову скрипту 23. фебруара 2015., вриједност МИФИЛЕНАМЕ би била ~ / бацкупс / доцументс-бацкуп-2015-02-23.тар.гз . Ако смо га покренули 7. маја 2015, вредност би била ~ / бацкупс / доцументс-бацкуп-2015-05-07.тар.гз .

Трећа линија је наредба која креира архиву. Користимо тар наредбу с опцијом -цзф, која ће креирати ( ц ) гзип архиву ( з ) користећи специфицирано име датотеке ( ф ). Тада специфицирамо име архивске датотеке позивајући се на променљиву коју смо креирали у реду 2, ОУТПУТФИЛЕ . На крају, рецимо тар шта желимо да архивирамо: директоријум ~ / документи .

Да бисте покренули скрипту, сачувајте текстуални фајл у вашем хоме директоријуму (или било где где желите) и дајте му одговарајуће име, на пример, бацкуп-ми-доцс . Нема потребе да му се додаје име датотеке. Изађите из уређивача текста и направите извршну датотеку помоћу команде цхмод + к, на пример:

 цхмод + к ~ / бацкуп-ми-доцс 

Сада можете покренути скрипту. На пример, ако је скрипта у вашем радном директоријуму, можете је покренути са:

 ./бацкуп-ми-доцс 

Или, ако се налази у вашем хоме директоријуму, можете га покренути из било ког директоријума помоћу наредбе:

 ~ / бацкуп-ми-доцс