Руководство пользователя для GNU Awk
2.2.4 Исполнимые awk-программы
Если вы познакомились с awk, вы можете захотеть писать самостоятельные сценарии awk, используя сценарный механизм `#!'. Это можно делать на многих Unix systems2 (и впоследствии и на системах GNU). Например, можно модернизировать файл `advice' так:
#!/bin/awk -f
BEGIN - print "Don't Panic!" ""
Сделав этот файл исполнимым (с помощью утилиты chmod), можно просто напечатать `advice' для командного процессора, и система выполнит awk так, как и в случае `awk -f advice':
$ advice
a Don't Panic!
Механизм `#!' работает на системах Linux, системах Unix, происходящих от Berkeley Unix, на системах V Release 4, и некоторых System V Release 3. Строка с началом `#!' определяет полное имя файла интерпретатора, который нужно запустить, и возможный начальный аргумент командной строки для передачи этому интерпретатору. Затем операционная система запускает интерпретатор с этим аргументом и полным списком аргументов исполняемой программы. Первый аргумент в списке - есть полное файловое имя awk-программы. Остальные аргументы списка --- или параметры awk, или файлы с данными, или и то и другое.
Самостоятельные сценарии полезны, когда вы хотите написать программу, которую пользователь может исполнять, не зная что она написана на awk.
Внимание: нельзя помещать более одного аргумента в строке `#!' после пути к awk. Это не будет работать: операционная система рассматривает остаток строки как один аргумент и передает его awk. Это может вызвать непредсказуемые последствия, обычно некоторую диагностику от awk.
Некоторые старые системы не имеют механизма `#!'. Подобный ему эффект можно получить, используя регулярный сценарий оболочки. Он может выглядеть подобно следующему:
: двоеточие обеспечивает выполнение стандартной оболочкой. awk 'program' "$@"
Используя эту технику, необходимо заключать программу в одиночные кавычки, чтобы защитить ее от интерпретации оболочкой. Если кавычки опустить, то только эксперт по оболочке может предсказать результат.
"$@" побуждает оболочку передать все аргументы командной строки программе awk, без интерпретации. Первая строка, которая начинается с двоеточия, используется так, что этот сценарий оболочки будет работать даже если вызван пользователем, который использует оболочку Си. (Не все, но многие старые системы следуют этому правилу.)
Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание подраздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|