Читать книгу 📗 "Основы программирования в Linux - Мэтью Нейл"
Переменные-параметры перечислены в табл. 2.3.
Таблица 2.3
| Переменная-параметр | Описание |
|---|---|
$1$2 | Параметры, передаваемые сценарию |
$* | Список всех параметров в единственной переменной, разделенных первым символом из переменной окружения IFSIFS$* |
[email protected] | Едва различимая вариация $*IFSIFS |
Легче всего увидеть разницу между переменными-параметрами
$*[email protected]$ <b>IFS=''</b>$ <b>set foo bar bam</b>$ <b>echo "[email protected]"</b>foo bar bam$ <b>echo "$*"</b>foobarbam$ <b>unset IFS</b>$ <b>echo "$*"</b>foo bar bamКак видите, заключенная в двойные кавычки переменная-параметр
[email protected]IFSПомимо вывода на экран содержимого переменных с помощью команды
echoreadВ приведенном далее сценарии показано несколько простых манипуляций переменными. После ввода сценария и записи его в файл try_var не забудьте превратить его в исполняемый файл с помощью команды
chmod +х try_var#!/bin/shsalutation="Hello"echo $salutationecho "The program $0 is now running"echo "The second parameter was $2"echo "The first parameter was $1"echo "The parameter list wasecho "The user's home directory is $HOME"echo "Please enter a new greeting"read salutationecho $salutationecho "The script is now complete"exit 0Если вы выполните этот сценарий, то получите следующий вывод:
$ <b>./try_var foo bar baz</b>HelloThe program ./try_var is now runningThe second parameter was barThe first parameter was fooThe parameter list was foo bar bazThe user's home directory is /home/rickPlease enter a new greeting<b>Sire</b>SireThe script is now complete $Как это работает
Сценарий создает переменную
salutation$НОМЕДалее в этой главе мы рассмотрим более подробно подстановку параметров.
Условия
Основа всех языков программирования — средства проверки условий и выполнение различных действий с учетом результатов этой проверки. Но прежде чем говорить об этом, давайте рассмотрим условные конструкции, которые можно применять в сценариях командной оболочки, а затем познакомимся с использующими их управляющими структурами.
Сценарий командной оболочки может проверить код завершения любой команды, вызванной из командной строки, включая сценарии, написанные вами. Вот почему так важно всегда включать в создаваемые вами сценарии команду exit с определенным значением.
На практике в большинстве сценариев широко используется команда
[test[test[][Эти команды в некоторых ранних оболочках UNIX вызывают внешнюю программу, но в более современных версиях их стараются делать встроенными. Мы вернемся к этому, когда будем рассматривать команды в следующем разделе.
Поскольку команда
testtestwhich testtest./test./