Настройване и извличане на стойности на променливи
В командната обвивка bash, която е стандартната обвивка, използвана в Linux, можете да зададете променлива, използвайки общия синтаксис NAME = VALUE . Например, в командния ред можете да въведете:
х = 5
А променлива с име x ще бъде зададена на числовата стойност 5 . Имената на променливите могат да бъдат с главни или малки букви, или комбинация от двете, и те са чувствителни към малки и главни букви. Когато задавате променливата, не трябва да има интервали между името на променливата, знака за равенство и стойността.
Не е необходимо предварително да се декларира променливата или да се определи неговият тип данни. Bash определя типа на променливата въз основа на неговата стойност.
Например, нашата променлива може да съдържа и низ:
х = Добре
За прост низ не е необходимо да се загражда низът в кавички, но ако низът съдържа интервали, трябва да го заобиколите с двойни кавички:
x = "Здравейте, свят!"
За да извлечете стойността на променливата си, я поставете с знак за долар. Например, за да видите стойността на x, използвайки командата echo, ще изпълните:
echo $ x
Кои изходи:
Здравей свят!
Това, което се случва тук, е, че обвивката поема стойността на вашата променлива и я вмъква във вашата команда. Можете да препращате към променливата където и да е във вашата команда, дори и в двойно цитиран низ:
echo "$ x $ x Може ли някой да ме чуе? Казах му, $ x"
Здравей свят! Здравей свят! Може ли някой да ме чуе? Казах: Здравей, свят!
Съвет: Променливите се интерпретират само в низ, ако използвате двойни кавички. Ако използвате единични кавички, името на променливата ще се интерпретира буквално, без интерпретация:
echo '$ x $ x Може ли някой да ме чуе? Казах, $ x '
$ x $ x Може ли някой да ме чуе? Казах, х
Задаване на стойността на променливата като изход на команда
За да зададете стойността на Вашата променлива да е изход на определена команда, използвайте формата:
NAME = $ (команда)
Например, ако потребителското ви име е "steven", изпълняването на командата whoami ще върне стойността steven . Можете да зададете тази променлива:
myname = $ (Whoami)
echo $ myname
Стивън
Можете да направите това за всяка команда. Ако командата поеме аргументи, не е необходимо да поставяте командата в кавички. Всичко в скобите ще се изпълнява като команда:
x = "Здравейте, свят!"
x = $ (echo $ x $ x $ x)
echo $ x
Здравейте, свят! Здравейте, свят!
Използване на променливи в прост скрипт
Нека видим как можем да използваме променлива в прост скрипт за архивиране. Да речем, че искате да направите резервно копие на всичко в документите в директорията във вашата домашна директория. Скриптът ще архивира всичко в тази директория и всички директории, които тя съдържа, в tar архив, чието име съдържа текущата дата. Нека да запазим архивите в директория, наречена backups във вашата домашна директория (ще приемем, че тази директория вече съществува. Ако не, можете да стартирате mkdir ~ / backups, за да я създадете).
Отворете текстов редактор и поставете този текст в нов файл:
#! / bin / bash MYFILENAME = ~ / backups / documents-backup - $ (дата +% Y-% m-% d) .tar.gztar -czf $ OUTPUTFILE ~ / документи
Нека разгледаме всеки ред от този скрипт. Първият ред, #! / Bin / bash, декларира скрипта като изпълним файл и указва, че трябва да се изпълнява с / bin / bash, което е изпълним файл на командната обвивка bash. Забележка: Файлът няма да бъде изпълним, докато не chmod файла по-късно, но тази линия се изисква във всеки правилен bash скрипт.
Вторият ред задава променливата MYFILENAME, която ще съдържа името на архива, съдържащ нашия архив. Първата част от името на файла е директорията за архивиране, ~ / backups .
Забележка: Тилдният символ ( ~ ) е специално име на директория, което винаги представлява нашата домашна директория.)
След това имаме началото на името на файла, архивиране на документи . След това вмъкваме текущата дата, като използваме командата за дата, символа плюс и стринга за формат на датата % Y-% m-% d . Например, ако датата е 23 февруари 2015 г., това ще се върне 2015-02-23 .
И накрая, използваме разширение .tar.gz, което е правилното разширение на името на файла с компресиран gzip. Така че, ако стартираме този скрипт на 23 февруари 2015 г., стойността на MYFILENAME ще бъде ~ / backups / documents-backup-2015-02-23.tar.gz . Ако го стартираме на 7 май 2015 г., стойността ще бъде ~ / backups / documents-backup-2015-05-07.tar.gz .
Третият ред е командата, която създава архива. Използваме командата tar с опцията -czf, която ще създаде ( c ) архивиран с gzipped ( z ), като използва определеното име на файл ( f ). След това указваме името на архивния файл, като се позоваваме на променливата, която създадохме в ред 2, OUTPUTFILE . И накрая, казахме на tar какво е това, което искаме да архивираме: директорията ~ / документите .
За да стартирате скрипта, запишете текстовия файл във вашата домашна директория (или някъде другаде, където предпочитате) и му задайте подходящо име, например backup-my-docs . Не е необходимо да се дава разширение за име на файл. Излезте от текстовия редактор и направете изпълним файл с командата chmod + x, например:
chmod + x ~ / backup-my-docs
Сега можете да стартирате скрипта. Например, ако скриптът е във вашата работна директория, можете да го стартирате с:
./backup-my-docs
Или, ако е във вашата домашна директория, можете да я изпълните от всяка директория с командата:
~ / Архивиране-ми-документи