Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 90
Текст из файла (страница 90)
См. примерфайла .cshrc ранее в этой главе.Параметры команды для tcsh—Перейти в предыдущий каталог.-1 Явно расширять символ ~.-п Переносить имена ранее конца строки; подразумеваетсяиспользование —р.Встроенные команды csh и tcsh-рОтобразить стек каталогов.613cd—v Отображать элементы стека по одному на строке; подразумевается использование —р.chdir [dir]chdirСиноним cd. Наличие синонима полезно, если cd переопределяется.complete[string[word/pattern/list[:select]/[suffix]}}Только для tcsh. Перечислить все дополнения либо все возможные дополнения указанной строки string (которая может являться шаблоном).
Доступны следующие параметры:Параметры для слова (word)сДополнять только текущее слово без обращения к шаблону pattern.СДополнять только текущее слово, обращаясь к шаблонуpattern.пДополнить предыдущее слово.NДополнить слово перед предыдущим.рСчитать pat tern диапазоном чисел.
Выполнять дополнение в этом диапазоне.Параметры для списковРазличные списки (lists) строк могут являться источникамивозможных дополнений. Некоторые из параметров списков:(string)Элементы списка string,^variableЗначение переменной variable,^command"Вывод команды command.аПсевдонимы.bСочетания клавиш.сКоманды.СВнешние (невстроенные) команды.dКаталоги.completeГлава 8. Интерпретаторы csh и tcsh614completeD Каталоги, имена которых начинаются со строки string.еПеременные окружения.fФайлы.FФайлы, имена которых начинаются со строки string.gГруппы.jЗадания.1Ограничения.пНичего.sПеременные интерпретатора.SСигналы.tТекстовые файлы.ТТекстовые файлы, имена которых начинаются со строкиstring.иПользователи.vЛюбые переменные.хАналогично п, но отображается select в качестве пояснения с командой редактора list-choices.XДополнения.selectselect представляет собой расширяемый шаблон. Дополнения ограничиваются словами, которые соответствуют этомушаблону.
Ко всем дополнениям добавляется указанный суффикс (suffix).continuecontinueПродолжить выполнение со следующей итерации охватывающего цикла while или foreach.defaultdefault:Отметка варианта по умолчанию для конструкции switch(является, как правило, последней в конструкции).dirsdirs [options]Отобразить стек каталогов, начиная с текущего каталога.См. также popd или pushd. Все параметры, кроме —1, —п и -v,являются расширениями tcsh.Встроенные команды csh и tcsh615Параметрыdirs—с Обнулить стек каталогов.—1 Расширять символ домашнего каталога (~) до действительного пути.—п Перенос вывода (wrap output) для длинных строк.—v Отображать каждый каталог на отдельной строке.-L f i l eЗагрузить стек из файла file, который ранее был созданкомандой dirs —S file.-S fileОтобразить в файл file последовательность команд pushdи popd, которая воспроизводит стек.echo [—n] stringechoПослать строку string на стандартный вывод; если указанпараметр —п, не добавлять символ новой строки.
В отличиеот Unix-версии (/bin/echo) и версии команды интерпретатора Борна, echo интерпретатора tcsh не поддерживает экранирование символов. См. также описание команды echo вглаве 3 «Команды Linux» и главе 7 «bash: командный интерпретатор Борна».echotc [options] [arguments]Только для tcsh. Отобразить характеристики терминала илипереместить курсор в зависимости от аргумента.Параметры—s Вернуть пустую строку, вместо сообщения об ошибке,если характеристика не существует.—у Подробные сообщения.АргументыbaudОтобразить текущую скорость работы (в бодах).colsОтобразить текущую колонку.cm column rowПереместить курсор в указанную позицию экрана.echotc616echoicГлава 8.
Интерпретаторы csh и tcshhomeПереместить курсор в положение Ноте (в первую позицию текущего экрана).linesОтобразить количество строк экрана.metaПоддерживает ли терминал клавишу Meta? (Как правило, это ALT).tabsПоддерживает ли терминал табуляцию?elseelseЗарезервированное слово, используемое в операторе if... endif.endendЗарезервированное слово, которым заканчиваются операторы while и foreach.endifendifЗарезервированное слово, которым заканчивается оператор if.endswendswЗарезервированное слово, которым заканчивается операторswitch.evalevalargsКак правило, eval используется в сценариях интерпретатора, а аргументы являются строкой кода, которая может содержать переменные интерпретатора, eval производит подстановку значений переменных, а затем выполняет полученную команду. Такое «двойное сканирование» незаменимо,если переменные интерпретатора содержат символы перенаправления ввода/вывода, псевдонимы или другие переменные интерпретатора.
Например, перенаправление вобычных условиях происходит прежде подстановки значения переменных, поэтому переменная, содержащая перенаправления, должна быть предварительно расширена с помощью eval; в противном случае символы перенаправленияостанутся незамеченными.Встроенные команды csh и tcshПримеры617evalСледующая строка может присутствовать в файле .login вцелях установки характеристик терминала:set noglob eval 'tset -s xterm' unset noglobСледующие команды показывают действие eval:% set b='$a'% set a=hello% echo $b$a% eval echo $bhelloОднократное прочтение командыДвукратное прочтение командыЕще один пример использования eval см.
в описании команды alias.exec commandexecВыполнить команду вместо текущего интерпретатора. Происходит завершение работы интерпретатора, а не порождение процесса внутри него.exit [(expr)]Завершить выполнение сценария интерпретатора с кодом завершения, равным результату вычисления выражения ехрг.Нулевой код завершения означает успешное выполнение;ненулевой - ошибку. Если выражение не задано, код завершения имеет значение переменной status.
Команда exit может быть выполнена в командной строке для завершения текущего сеанса работы с интерпретатором.f g [joblDs]Перевести текущее задание (или задание с указанным идентификатором) в режим приоритетного выполнения. Идентификатор задания может иметь вид % job-number (номер задания).ПримерЕсли вы приостановили сеанс редактирования в vi (нажавклавиши <Ctrl>+<Z>), продолжить редактирование можноодной из следующих команд:exit618Глава 8. Интерпретаторы csh и tcshX Xх fg% fg XЯ fg Xvifiletest/7o имени задачи (поиск)filetest -op f i l e sТолько для tcsh. Применить оператор проверки (ор) к перечисленным файлам.
Выдать результаты в виде списка. Вразделе «Операторы опроса файлов» перечислены допустимые операторы.foreachforeach name (wordlist)commandsendПрисваивать переменной name последовательно значения изсписка wordlist и выполнять команды commands на каждойитерации, foreach можно использовать в качестве многострочной команды, набираемой в приглашении интерпретатора С shell (см. первый пример ниже) либо в сценарии (второй пример).ПримерыПереименовать все файлы, имена которых начинаются с заглавной буквы:% foreach i ([A-Z]*)? rav $i Si.new9endПроверить, является ли параметром каждый из аргументовкомандной строки:foreach arg ($argv)# начинается ли с символа - ?if ("$arg" =' -*) thenecho "Аргумент является параметром"elseecho "Аргумент является именем файла"endifendglobglob wordlistВыполнить подстановку переменных, команд журнала ирасширений имен файлов в список слов wordlist.
СимволыВстроенные команды csh и tcsh619экранирования «\» не опознаются при расширении, словаразделяются пустыми символами, glob обычно используетсяв сценариях интерпретатора для жесткого присваиваниязначения, которое не меняется на протяжении сценария.globgoto stringgotoБезусловный переход к строке, которая начинается с меткиstring и двоеточия, и продолжение выполнения сценария сэтой строки, string может быть переменной или маской имени файла, но сама метка в тексте программы должна бытьбуквальным, нерасширяемым значением. Метка не должнанаходиться внутри тела цикла while или foreach.hashstathashstatОтобразить статистику по эффективности использованияхеш-таблицы при поиске команд по переменной path.history [options]Отобразить события из журнала команд.
(Работа с ним обсуждалась ранее в этой главе в разделе «Журнал команд».)Параметры—с Только для tcsh. Очистить журнал команд.—h Отобразить список событий без нумерации.-г Отобразить в обратном порядке; самая старая командабудет последней в списке.пОтобразить последние п команд из журнала, не учитывая значение переменной интерпретатора history.-L fileТолько для tcsh. Загрузить последовательность командpushd и popd из файла file и воссоздать сохраненныйстек каталогов.-М fileТолько для tcsh. Объединить текущий стек каталогов истек, сохраненный в указанном файле.
Сохранить объединение в файле file как последовательность командpushd и popd.history620historyГлава 8. Интерпретаторы csh и tcsh—S fileТолько для tcsh. Отобразить последовательность командpushd и popd, воссоздающую стек, в файл file.ПримерСохранить и выполнить пять последних команд:history -h 5 > do_itsource do ithuphup [command}Только для tcsh. Выполнить команду, но принудительно завершить задание при посылке сигнала hangup при завершении работы интерпретатора. Команда без параметра можетиспользоваться внутри сценария, который должен быть принудительно завершен при выходе из интерпретатора.ififНачало условного оператора.
Простейший формат оператора:if (expr) cmdПрименяются еще три формата, которые приведены ниже:if (expr) thenerne'sendifif (expr) thencmdslelsecmds2endifif (expr) thencmdslelse if (expr) thencmds2elsectnds3endifВ первой форме оператора команда cmd выполняется, есливыражение expr истинно, иначе ничего не происходит (кроме перенаправления, что является ошибкой). Во всех прочих вариантах выполняется одна или более команд.