терминал

Использование awk с другими командами и с shell

Наибольшего эффекта awk достигает при использовании с другими программами. В этом подразделе обсуждаются некоторые способы взаимодействия программ awk с другими командами.

10.25.1. Функция system

Встроенная функция system (command_line) выполняет команду "command_line", которая может быть строкой, вычисляющей, например, sprintf. Функция system возвращает состояние выполненной команды.

Например:

             $1 == "#include" { gsub (/[<>"]/, $2;
             system ("cat " $2}

вызывает ...

Аргументы командной строки

В программе awk могут использоваться аргументы командной строки: массив ARGV содержит элементы ARGV[0], ... ARGV[ARGC-1], где ARGC - счетчик, ARGV[0] - имя программы (в общем случае - awk), остальное - любые поддерживаемые аргументы, исключая программы и необязательные аргументы).

Следующая командная строка содержит программу awk, отражающую аргументы, которые появляются после имени программы:

        awk '
        BEGIN  {
                for ( i = 1; i < ARGC; i++ )
                     printf "%s ", ARGV[i]
                ...

Использование shell переменных

Несколько переменных, зарезервированных shell, используются в файле .profile.

Рассмотрим 4 основные переменные:

HOME -
эта переменная дает имя пути вашего регистрационного
справочника. С помощью команды cd перейдите в него и
введите:
	pwd<CR>

Теперь введите:

	echo $HOME<CR>
$HOME -
это аргумент, используемый командой cd. Если вы не
указывали справочник, то cd переместит вас в $HOME;
PATH -
эта переменная дает путь ...

Отладка программы

Для нахождения и корректировки ошибок вам могут понадобиться две опции команды sh:

sh -v shellprogramname
печатает вводимые shell строки, как если бы они
были прочитаны системой;
sh -x shellprogramname
печатает команды и их аргументы по мере их
выполнения.

Для примера создадим shell программу, которая содержит ошибку:

        $ cat bug<CR>
        today=`date`
        echo enter person
        read person
        mail $1
        $person
        When you log off once into my office ...

Конструкции языка программирования shell

Язык программирования shell имеет несколько конструкций, которые придадут гибкость вашим программам:

  • комметнарии позволят описывать функции программы;
  • "here document" позволяет вам включать в shell
    программы строки, которые будут перенаправляться как ввод в
    некоторые команды shell программы;
  • команда exit позволяет завершать программу в нужной
    точке и использовать коды возврата;
  • конструкции цикла for, while позволяют повторять
    группу команд в цикле;
  • условные ...

Переменные

shell программы манипулируют с переменными. В этом пункте обсуждаются три типа переменных:

  • позиционные параметры;
  • специальные параметры;
  • именованные переменные.

9.2.1. Позиционные параметры

Позиционные параметры являются переменными в shell программе. Их значение устанавливается из аргументов, указанных в командной строке, которая вызывает программу. Позиционные параметры нумеруются и на них ссылка идет с помощью символа $: $1, $2, $3 и т.д.

shell программа может использовать до 9 ...

Программы shell

9.1.1. Создание простых программ shell

Начнем описание создания простых программ shell, которые выполняют задачи:

  • печать текущего справочника;
  • список содержимого этого справочника;
  • отображение следующих сообщений на вашем терминале:
    	"This is the end of the shell program."

С помощью редактора создайте файл dl и введите в него строки:

        pwd<CR>
        ls<CR>
        echo This is the end of the shell program.<CR>

Теперь вы имеете программу ...

Средства программирования shell

Вы можете использовать shell для создания программ. Такие программы называются также процедурами shell. В этом разделе рассказывается как создавать и выполнять программы shell с помощью команд, переменных, позиционных параметров, кодов возврата.

Прежде чем создавать программы shell необходимо изучить редактор.

Выполнение, останов и повторный запуск процессов

В этом подразделе описывается:

  • как запустить команду в определенное время с помощью
    команд batch и at;
  • как получить информацию о состоянии процесса;
  • как завершить активный процесс;
  • как вновь запустить остановленный процесс;
  • как пренести процесс из оперативного в фоновый режим
    и наоборот.

8.4.1. Запуск команд в заданное время

Команды batch и at позволяют вам определять время запуска команды или последовательности команд. При помощи команды batch система определяет время запуска ...

Перенаправление ввода и вывода

В системе LINUX некоторые команды ожидают ввод только с клавиатуры (стандартный ввод) и большинство команд отображают свой вывод на экране терминала (стандартный вывод). Однако система LINUX позволяет вам перенаправлять ввод и вывод в файлы и программы, т.е. вы можете сказать shell:

  • взять ввод из файла, а не с клавиатуры;
  • послать вывод в файл, а не на терминал;
  • использовать программу как исходные данные для другой
    программы.

8.3.1. Перенаправить ввод: знак <

Чтобы перенаправить ввод, укажите в ...

Ленты новостей