Выполнение команд и получение результатов их выполнения
⇐ ПредыдущаяСтр 4 из 4 При написании сценариев часто требуется перехватить результат выполнения команды для использования его в сценарии командной оболочки; т. е. выполнить команду и поместить ее вывод в переменную. Сделать это можно с помощью синтаксической конструкции $(команда). Результат выполнения конструкции $ (команда) — просто вывод команды. Имейте в виду, что это не статус возврата команды, а просто строковый вывод, показанный далее. #!/bin/sh echo The current directory is $PWD echo The current users are $(who) exit 0 Поскольку текущий каталог — это переменная окружения командной оболочки, первая строка не нуждается в применении подстановки команды. Результат выполнения программы who, напротив, нуждается в ней, если он должен стать переменной в сценарии. Если вы хотите поместить результат в переменную, то можете просто присвоить его обычным образом whoisthere=$(who) Возможность поместить результат выполнения команды в переменную сценария - мощное средство, поскольку оно облегчает использование существующих команд в сценариях и перехват результата их выполнения. Если необходимо преобразовать набор параметров, представляющих собой вывод команды на стандартное устройство вывода, и передать их как аргументы в программу, команда xargs сможет это сделать. Встроенные документы Особый способ передачи из сценария командной оьолочки входных данных команде – использование встроенного документа. Такой документ позволяет команде выполняться так, как будто она читает данные из файла или с клавиатуты, в то время как на самом деле она получает их из сценария. Встроенный документ начинается со служебных символов <<, за которыми следует специальная символьная последовательность, повторяющаяся и в конце документа. Символы << обозначают в командной оболочке перенаправление данных, которое в данном случае заставляет вход команды превратиться во встроенный документ. Специальная последовательность символов действует как маркер, указывая оболочке, где завершается встроенный документ. Маркерная последовательность не должна включаться в строки, передаваемые команде.
Пример 15. Применение встроенного документа #!/bin/sh cat <<!BUILTdoc! Это пример встроенного документа для описания сценария !BUILTdoc! Пример 15 выводит на экран следующие строки Это пример встроенного документа для описания сценария
Отладка сценариев При обноружении ошибки при выполнении сценария командная оболочка выводит на экран номер строки, содержащей ошибку. Если ошибка сразу не видна, нужно добавить несколько дополнительных команд echo для вывода значений переменных и протестировать фрагменты программного кода, вводя их в командной оболочке в интерактивном режиме. Основной способ отслеживания наиболее трудно выявляемых ошибок – использование отладочных опций командной оболочки. Отладочные опции командной строки приведены в табл. 5.
Таблица 5. Отладочные опции командной строки
МЕТОДИКА ВЫПОЛНЕНИЯ 1. Получить полный список ключей команды stat. 2. Вычислить факториал целого числа, вводимого с клавиатуры. Предусмотреть проверку правильности ввода аргумента. 3. Найти первые N чисел Фибоначчи, используя рекуррентное соотношение Ai+1=Ai+Ai-1 Значения первых двух чисел и необходимое количество чисел N ввести с клавиатуры.
4. Написать и выполнить сценарии для решения индивидуальных задач, номер задачи определяется номером бригады:
ОТЧЕТ О РАБОТЕ Готовится в письменном виде один на бригаду. Содержание отчета: 1. Результаты выполнения заданий 1- 3 – тексты сценариев и результаты их выполнения 2. Результаты выполнения индивидуального задания для бригады - текст сценария и результаты его выполнения.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|