Переменные Bash

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

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

name="DevDojo"

{notice} Важная заметка: до и после знака нельзя ставить пробелы =.

После этого, чтобы получить доступ к переменной, вам нужно использовать $и ссылаться на нее, как показано ниже:

echo $name

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

echo ${name}

Приведенный выше код выведет: DevDojoтак как это значение нашей nameпеременной.

Далее давайте обновим наш devdojo.shскрипт и добавим в него переменную.

Опять же, вы можете открыть файл devdojo.shв своем любимом текстовом редакторе, я использую nano, чтобы открыть файл:

nano devdojo.sh

Добавляем нашу nameпеременную сюда, в файл, с приветственным сообщением. Наш файл теперь выглядит так:

#!/bin/bash

name="DevDojo"

echo "Hi there $name"

Сохраните его и запустите файл, используя команду ниже:

На экране вы увидите следующий вывод:

Вот краткое изложение сценария, записанного в файле:

  • #!/bin/bash- Сначала мы уточнили наш шебанг.

  • name=DevDojo- Затем мы определили переменную nameи присвоили ей значение.

  • echo "Hi there $name"- Наконец, мы выводим содержимое переменной на экран в виде приветственного сообщения, используяecho

Вы также можете добавить несколько переменных в файл, как показано ниже:

Сохраните файл и запустите его снова:

На экране вы увидите следующий вывод:

Обратите внимание, что вам не обязательно добавлять точку с запятой ;в конце каждой строки. Он работает в обе стороны, как и другие языки программирования, например JavaScript!

Вы также можете добавлять переменные в командную строку вне сценария Bash, и их можно читать как параметры:

Этот скрипт принимает два параметра Bobby, buddy!разделенных пробелом. В devdojo.shфайле у нас есть следующее:

$1— это первый ввод ( Bobby) в командной строке. Точно так же входных данных может быть больше, и все они обозначаются знаком $и соответствующим порядком ввода. Это означает, что buddy!имеется в виду использование $2. Еще один полезный метод чтения переменных — $@считывание всех входных данных.

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

Выход для:

Было бы следующее:

Last updated