Язык обработки данных AWK


         

Разбор командной строки


Интерпретатор, получив командную строку, выполняет над ней ряд преобразований, а именно:

  • Раскрывает псевдонимы ( alias)

  • Раскрывает метасимволы (*, ?, [, ], ~, {, })

  • Подставляет переменные shell

  • Выполняет команду, если она - встроенная команда интерпретатора, или запускает процесс, если команда внешняя.

    Разберем эти действия по этапам.

    Псевдонимы (alias). Встроенная команда alias позволяет определять псевдонимы команд. Пример:

    % alias mycat 'cat | more'

    определяет mycat как псевдоним строки cat | more. Поэтому далее вы вправе пользоваться командой mycat, которая будет раскрыта интерпретатором везде, где вы ее используйте. Это - способ определения коротких имен для длинных составных команд.

    Встроенная команда unalias mycat уничтожает ранее введенный псевдоним mycat.

    Метасимволы. Метасимволы позволяют кратко записывать целые списки слов (главным образом - имен файлов). Shell рассматривает слово, в котором встречаются метасимволы, как шаблон для составления списка имен файлов:

  • * в шаблоне заменяет любую последовательность символов. Например m* раскроется в список всех файлов, начинающихся с буквы m. Существует небольшое исключение из этого правила: просто * опускает в списке те файлы, имена которых начинаются с точки.

  • ? заменяет один символов. Например m? раскроется в список всех имен файлов, начинающихся с буквы m и состоящих точно из двух букв.

  • [.-.] позволяет указать интервал для подставляемого символа. Например m[a-e] будет раскрыто в ma mb mc me.

  • {...,...} позволяет перечислить слова для подстановки. Так, например m{red,blue,green} будет раскрыто в mred mblue mgreen.

    Наконец, тильда позволяет указать домашний каталог пользователя:

  • ~name/ эквивалентно указанию полного пути в домашний каталог пользователя name (Скажем, /usr1/name/)

  • ~/ эквивалентно указанию полного пути в ваш собственный домашний каталог.

    Переменные shell. Слова, начинающиеся с символа $ командный интерпретатор воспринимает как имена переменных. Переменные делятся на переменные окружения (они будут известны всем вызванным из этой shell программам и являются в этом смысле глобальными) и простые переменные.



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