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