Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 92
Текст из файла (страница 92)
Перечислить переменные, ограничившись доступными только для чтения, или установитьдля указанных переменных режим «только для чтения».Примерыset list=(yes no maybe) Присваивание списка словПрисваивание значения элементуset Hst[3]=maybeиз существующего списка словset quote="Make my day" Присваивание значения переменнойset x=5 y=10 history=100 Несколько присваиванийset blankПрисваивание пустого значенияпеременной blanksetenv [name [value]]Присвоить значение value переменной окружения с именемпате. По принятому соглашению все символы имени перемен-setenv628Глава 8. Интерпретаторы csh и tcshsetenvной должны быть прописными.
Значение value может иметьвид отдельного слова или строки, заключенной в кавычки.Если значение не задано, переменная получает пустое значение. Команда без аргументов отображает имена и значениявсех переменных окружения. Переменная PATH может неустанавливаться командой setenv, поскольку ее значениеэкспортируется из переменной интерпретатора path.settcsettc capability valueТолько для tcsh. Установить значение (value) характеристики (capability) терминала.settysetty [options] [+ — mode]Только для tcsh.
Запретить изменение интерпретатором определенных режимов терминала. По умолчанию влияет нарежимы выполнения.Параметры+тоаеУказание параметра без аргумента перечисляет все режимы указанного типа, которые установлены. Иначевключается указанный режим.—modeУказание параметра без аргумента перечисляет все режимы указанного типа, которые отключены. Иначевключить указанный режим.—а Перечислить все режимы определенного типа.—d Работать с режимами редактирования.—q Работать с режимами цитирования (используются прибуквальном вводе символов).—х Работать с режимами выполнения (по умолчанию; устанавливается при выполнении примеров).shiftshift [variable]Если задана переменная, сдвинуть слова из списка (т. е. элемент пате[2] занимает место пате[1]).
Команда без аргументов сдвигает позиционные параметры (параметры командной строки), т. е. параметр $2 замещает $1. Командаshift обычно используется в циклах while. См. дополнительный пример в описании wh'ile.Встроенные команды csh и tcshПримерwhile ($#argv)if (-f $argv[1])we -1 $argv[1]else629shiftПока не кончились аргументы.echo "$argv[1] не является обычным файлом"endifshiftБерем следующий аргументendsource [-h] script [args]sourceПрочитать и выполнить команды из сценария интерпретатора С shell. Если указан параметр -h, команды из сценариядобавляются в журнал команд, но не выполняются.Примерsource "/.cshrcstop [joblDs]stopПриостановка текущих фоновых заданий или заданий, длякоторых указаны идентификаторы; команда является дополнением к Ctrl-Z (<Ctrl>+<Z>) или suspend.suspendsuspendПриостановить выполнение приоритетного задания; идентично Ctrl-Z.
Часто используется для приостановки действия команды su.switchВыбор последовательности команд в зависимости от значения управляющей переменной. Когда необходимо обработатьболее трех вариантов, оператор switch удобнее конструкцииif-then-else. Если переменная string соответствует шаблонуpatternl, выполняется первый набор команд; если шаблонуpattern2 — второй набор команд и т. д. Если соответствие шаблону не найдено, выполняются команды из секции default.Параметр string может задаваться с помощью подстановкикоманд, подстановки переменных или расширения именфайлов. Шаблоны могут содержать метасимволы *, ? и [ ].Для выхода из конструкции используется оператор breaksw.Если этот оператор опускается (что бывает довольно редко),switchГлава 8. Интерпретаторы csh wtcsh630switchswitch продолжает выполнение следующего набора команд,пока выполнение не достигнет оператора breaksw или endsw.Ниже приводится общий синтаксис конструкции switch параллельно с конкретным примером, в котором обрабатывается первый аргумент командной строки:switch (string)case pattern?:commandsbreakswcase pattern?:commandsbreakswcase patterns:commandsbreakswdefault:commandsbreakswendswtelltcswitch ($argv[1])case -[nN]:nroff Sfile | Ipbreakswcase -[Pp]:pr Sfile | Ipbreakswcase -[Mm]:more Sfilebreakswcase -[Ss]:sort Sfilebreakswdefaultecho "Error-no such option'exit 1breakswendswtelltcТолько для tcsh.
Отобразить все характеристики терминалаи их значения.timetime [command]Выполнить указанную команду и вычислить время выполнения. Команда без аргумента может использоваться в сценарии для замера времени его выполнения.umaskumask [nnn]Отобразить маску прав доступа для вновь создаваемых файлов или установить восьмеричное значение маски ппп. Маска определяет, какие компоненты прав доступа отсутствуюту создаваемых файлов.unaliasunalias nameУдалить пате из списка псевдонимов.
Подробнее см. alias.Встроенные команды csh и tcshuncomplete pattern631uncompleteТолько для tcsh. Удалить дополнения (заданные командойcomplete), имена которых соответствуют шаблону pattern.unhashunhashУдалить внутреннюю хеш-таблицу. Интерпретатор С shellперестанет использовать хешированные значения, что приведет к дополнительным затратам времени на поиск файловпо путям path. См. также rehash.unlimit [-h] [resource]unlimitСнять ограничение на использование указанного ресурса.Если ресурс не задан, снять ограничения для всех ресурсов.См.
также limit. Параметр —h является предписанием снятьжесткие ограничения. Эта команда может выполнятьсятолько привилегированным пользователем.unset variablesunsetУдалить указанные переменные. Имена переменных могутзадаваться масками с использованием специальных символов для имен файлов. Переменные, доступные только длячтения, не изменяются этой командой. См. set.unsetenv variableunsetenvУдалить переменную окружения. Расширение маски не производится. См.
setenv.waitwaitОстановить выполнение до тех пор, пока не завершатся всепорожденные процессы либо не будет получен сигнал прерывания.watchlogТолько для tcsh. To же, что и log. Команда должна быть добавлена во время компиляции интерпретатора; см. значениепеременной version.watchlogГлава 8. Интерпретаторы csh и tcsh632wherewhere commandТолько для tcsh.
Отобразить все псевдонимы, встроенныекоманды и программы с именем command.whichwhich commandТолько для tcsh. Отображение номера версии команды, которая будет выполнена. Идентично исполняемой программеwhich, но работает быстрее и учитывает встроенные команды tcsh.whilewhile (expression)commandsendДо тех пор пока истинно выражение expression (т.е. его значение не равно нулю), выполнять команды (commands) изтела цикла (между while и end). Для выхода из цикла и перехода к следующей итерации могут использоваться операторы break и continue. См. также пример в описании командыshift.Примерset user = (alice bob carol ted)while ($argv[1] != $user[1])Перебирать пользователейв поисках совпаденияЕсли пользователь не найден...shift userif ($#user == 0) thenecho "$argv[1] нет в списке пользователей"exit 1endifendГлава 9Шаблоны и поискВ Linux многие инструменты, работающие с текстом, позволяют выполнятьпоиск, а в некоторых случаях и замену, по текстовым шаблонам, а не буквальным строкам.
Среди таких инструментов - редакторы ed, ex, vi и sed;язык сценариев awk; команды grep и egrep. Текстовые шаблоны (называемые также регулярными выражениями) содержат обычные символы и символы специальные (называемые также метасимволами).Поддержка регулярных выражений в языке Perl настолько мощна, что таблиц этой главы на нее не хватит.
Подробное рассмотрение данной темы можно найти в книгах издательства O'Reilly «Perl in a Nutshell», «Perl 5 PocketReference» (Perl 5: карманный справочник) или «Programming Perl» (Программирование на Perl). В редакторе Emacs также доступна работа с регулярными выражениями, схожими с описываемыми в этой главе.Редакторы ed и ех в настоящее время практически не используются сами посебе в качестве диалоговых редакторов.
Но ed применяется как пакетный обработчик, вызываемый из сценариев интерпретатора, а команды ех частовызываются в редакторе vi посредством команды «:» (двоеточие). В даннойглаве при упоминании свойств vi имеются в виду регулярные выражения,доступные как в vi, так и в редакторе ех, на котором vi построен.Инструменты sed и awk широко используются в сценариях интерпретатораи в качестве фильтров, обрабатывающих текст.В данной главе представлены следующие темы:• Имена и шаблоны файлов• Список метасимволов, доступных в каждой из программ• Описание метасимволов• ПримерыГлава 9.
Шаблоны и поиск634Подробное руководство по шаблонам и поиску можно найти в книгеДжеффри Фридла (Jeffrey E.F. Friedl) «Mastering Regular Expressions», вышедшей в серии Nutshell Handbook.Имена файлов в сравнении с шаблонамиМетасимволы, применяемые при поиске по шаблону, отличаются от специальных символов расширения имен файлов. Специальные символы команды, вводимой в командной строке, сначала обрабатываются интерпретатором и лишь затем программой; как следствие неэкранированные метасимволы используются интерпретатором для расширения имен файлов. К примеру, команда$ grep [A-Z]* chap[12]может быть понята интерпретатором как:$ дгер Array.с Вид.с Сотр.с chapl chap2и grep будет производить поиск строки «Array.с» в файлах Bug.c, Comp.c,chapl и chap2.