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