Переменные 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"

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

./devdojo.sh

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

Hi there DevDojo

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

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

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

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

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

#!/bin/bash

name="DevDojo"
greeting="Hello"

echo "$greeting $name"

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

./devdojo.sh

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

Hello DevDojo

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

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

./devdojo.sh Bobby buddy!

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

#!/bin/bash

echo "Hello there" $1

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

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

#!/bin/bash

echo "Hello there" $1

# $1 : first parameter

echo "Hello there" $2

# $2 : second parameter

echo "Hello there" $@

# $@ : all

Выход для:

./devdojo.sh Bobby buddy!

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

Hello there Bobby
Hello there buddy!
Hello there Bobby buddy!

Last updated