Как переменная поддерживается в Linux?

Оболочка командной строки операционной системы Linux является мощным инструментом, который по своей сути является интерпретатором языка программирования. Как и любой другой язык программирования, командная оболочка позволяет использовать переменные для хранения, извлечения и манипулирования данными.

Установка и получение значений переменных

В командной оболочке bash, которая является оболочкой по умолчанию, используемой в Linux, вы можете установить переменную, используя общий синтаксис NAME = VALUE . Например, в командной строке вы можете ввести:

 х = 5 

И переменная с именем x будет установлена ​​в числовое значение 5 . Имена переменных могут быть как в верхнем, так и в нижнем регистре, или их комбинацией, и они чувствительны к регистру. При установке переменной не должно быть пробелов между именем переменной, знаком равенства и значением.

Нет необходимости заранее объявлять переменную или указывать ее тип данных. Bash определяет тип переменной на основе ее значения.

Например, наша переменная также может содержать строку:

 х = Hello 

Для простой строки необязательно заключать строку в кавычки, но если строка содержит пробелы, вы должны заключить ее в двойные кавычки:

 x = "Привет, мир!" 

Чтобы получить значение вашей переменной, поставьте перед ним знак доллара. Например, чтобы просмотреть значение x с помощью команды echo, вы должны выполнить:

 эхо $ х 

Какие выводы:

 Привет, мир! 

Здесь происходит следующее: оболочка принимает значение вашей переменной и вставляет его в вашу команду. Вы можете ссылаться на переменную в любом месте вашей команды, даже внутри строки в двойных кавычках:

 echo "$ x $ x Кто-нибудь меня слышит? Я сказал, $ x" 
 Привет, мир! Привет, мир! Кто-нибудь меня слышит? Я сказал: Привет, Мир! 

Совет: Переменные интерпретируются только внутри строки, если вы используете двойные кавычки. Если вы используете одинарные кавычки, имя переменной будет интерпретировано буквально, без интерпретации:

 echo '$ x $ x Кто-нибудь меня слышит? Я сказал, $ х ' 
 $ x $ x Кто-нибудь меня слышит? Я сказал, $ х 

Установка значения переменной для вывода команды

Чтобы установить значение вашей переменной для вывода определенной команды, используйте форму:

 NAME = $ (COMMAND) 

Например, если ваше имя пользователя «steven», то при запуске команды whoami будет возвращено значение steven . Вы можете установить это в переменную:

 MyName = $ (Whoami) 
 echo $ myname 
 стивен 

Вы можете сделать это для любой команды. Если команда принимает аргументы, вам не нужно заключать команду в кавычки. Все, что в скобках, будет выполнено командой:

 x = "Привет, мир!" 
 х = $ (эхо $ х $ х $ х) 
 эхо $ х 
 Привет, мир! Привет, мир! Привет, мир! 

Использование переменных в простом скрипте

Давайте посмотрим, как мы можем использовать переменную в простом скрипте резервного копирования. Допустим, вы хотите сделать резервную копию всего в каталогах документов в вашем домашнем каталоге. Скрипт заархивирует все в этом каталоге и любые содержащиеся в нем каталоги в архив tar, имя которого содержит текущую дату. Давайте сохраним резервные копии в каталоге с именем backups в вашем домашнем каталоге (предположим, что этот каталог уже существует. Если нет, вы можете запустить mkdir ~ / backups для его создания).

Откройте текстовый редактор и поместите этот текст в новый файл:

 #! / bin / bash MYFILENAME = ~ / backups / documents-backup - $ (дата +% Y-% m-% d) .tar.gz 

tar -czf $ OUTPUTFILE ~ / documents

Давайте посмотрим на каждую строку этого скрипта. Первая строка, #! / Bin / bash, объявляет скрипт как исполняемый файл и указывает, что его следует запускать с / bin / bash, который является исполняемым файлом командной оболочки bash. Примечание. Файл не будет исполняемым до тех пор, пока мы не изменим файл позже, но эта строка требуется в любом подходящем скрипте bash.

Вторая строка устанавливает переменную MYFILENAME, которая будет содержать имя архива, содержащего нашу резервную копию. Первая часть имени файла - это наш каталог резервных копий ~ / backups .

Примечание. Символ тильды ( ~ ) - это специальное имя каталога, которое всегда представляет наш домашний каталог.)

Далее у нас есть начало имени файла Documents-Backup- . Затем мы вставляем текущую дату, используя команду даты, символ плюс и строку формата даты % Y-% m-% d . Например, если бы дата была 23 февраля 2015 года, это вернул бы 2015-02-23 .

Наконец, мы используем расширение .tar.gz, которое является правильным расширением имени файла для сжатого gzip файла tar. Итак, если мы запустим этот скрипт 23 февраля 2015 года, значение MYFILENAME будет равно ~ / backups / documents-backup-2015-02-23.tar.gz . Если мы запустим его 7 мая 2015 года, значением будет ~ / backups / documents-backup-2015-05-07.tar.gz .

Третья строка - это команда, которая создает архив. Мы используем команду tar с опцией -czf, которая создаст ( c ) сжатый архив ( z ), используя указанное имя файла ( f ). Затем мы указываем имя файла архива, ссылаясь на переменную, которую мы создали в строке 2, OUTPUTFILE . Наконец, мы говорим tar, что мы хотим заархивировать: каталог ~ / documents .

Чтобы запустить скрипт, сохраните текстовый файл в своем домашнем каталоге (или в любом другом месте, которое вы предпочитаете) и присвойте ему подходящее имя, например, backup-my-docs . Нет необходимости давать ему расширение имени файла. Выйдите из текстового редактора и сделайте файл исполняемым с помощью команды chmod + x, например:

 chmod + x ~ / backup-my-docs 

Теперь вы можете запустить скрипт. Например, если скрипт находится в вашем рабочем каталоге, вы можете запустить его с помощью:

 ./backup-my-docs 

Или, если он находится в вашем домашнем каталоге, вы можете запустить его из любого каталога с помощью команды:

 ~ / Резервное копирование мои-документы