Программирование на Shell (Unix)



СРЕДА SHELL (ПЕРЕМЕННЫЕ И ПАРАМЕТРЫ) - часть 8


Своеобразный подход к параметрам дает команда "set".

Например, фрагмент расчета

set a b с echo первый=$1 второй=$2 третий=$3

выдаст на экран

первый=a второй=b третий=c

т.е. команда "set" устанавливает значения параметров. Это бывает очень удобно. Например, команда "date" выдает на экран текущую дату, скажем, "Mon May 01 12:15:10 2000", состоящую из пяти слов, тогда

set `date` echo $1 $3 $5

выдаст на экран

Mon 01 2000

Команда "set" позволяет также осуществлять контроль выполнения программы, например:

set -v на терминал выводятся строки, читаемые shell.
Set +v отменяет предыдущий режим.
Set -x на терминал выводятся команды перед выполнением.
Set +x отменяет предыдущий режим.

Команда "set" без параметров выводит на терминал состояние программной среды (см далее).

Содержание главы

4.6. Подстановки shell-интерпретатора

Перед началом непосредственной интерпретации и выполнением команд, содержащихся в командных файлах, shell выполняет различные виды подстановок:

  • ПОДСТАНОВКА РЕЗУЛЬТАТОВ.

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

  • ПОДСТАНОВКА ЗНАЧЕНИЙ ПАРАМЕТРОВ И ПЕРЕМЕННЫХ. То есть слова, начинающиеся на "$", заменяются соответствующими значениями переменных и параметров.
  • ИНТЕРПРЕТАЦИЯ ПРОБЕЛОВ.

    Заэкранированные пробелы игнорируются.

  • ГЕНЕРАЦИЯ ИМЕН ФАЙЛОВ.

    Проверяются слова на наличие в них спецсимволов ("*", "?","[]") и выполняются соответствующие генерации.

  • Содержание главы

    4.7. Программная среда

    Каждый процесс имеет среду, в которой он выполняется. Shell использует ряд переменных этой среды.

    Если вы наберете команду "set" без параметров, то на экран будет выдана информация о ряде стандартных переменных, созданных при входе в систему (и передаваемых далее всем вашим новым процессам "по наследству"), а также переменных, созданных и экспортируемых вашими процессами.

    Конкретный вид и содержание выдаваемой информации в немалой степени зависит от того, какая версия UNIX используется и как инсталлирована система.




    Содержание  Назад  Вперед