Алиасы, подстановка команд, метасимволы
csh предоставляет дополнительные удобства в виде командных алиасов. Например, вместо того чтобы каждый раз при необходимости вывести полный листинг директории или при выходе из шелла набирать набирать полные команды, можно создать их сокращенные псевдонимы (dir и x):
alias dir ls –als alias exit x
для снятия алиаса нужно воспользоваться командой unalias :
unalias dir
чтобы просмотреть список всех алиасов имеющихся в данный момент нужно ввести команду alias без параметров.
Подстановка команд
Подстановка команд в csh выполняется полностью аналогично подстановке в Bourne Shell рассмотреной перед этим:
cruiser 7: set dir=`pwd` cruiser 8: echo $dir /home/roman cruiser 9:
Метасимволы Все етасимволы включая синтаксические ( ; | () & || && ) а так же файловые ( ? * [] ~ ) и метасимволы квотинга ( \ ‘ “ ) в csh имеют тот же смысл что и рассмотренные перед этим в Bourne Shell.
2.3.4 Переменные csh
Цифровые переменные csh
Команда at ( @ ) назначает цифровой переменной арифметическое значение, точно так же как и команда set назначает значение стороковой переменной. Значением цифровых переменных являются десятичные целые.
% @ sum=( 1 + 2 ) % echo $sum 3
Основные арифметические операции в csh
Основные логические операции в csh
Кроме этих операций есть еще ряд логических операций которые должны быть взяты в скобки и их операнды должны ьыть разделены пробелами в виде ( operand1 >= operand2 )
Например:
% @ r= ( 2 << 4 ) % echo $r 32
Основные операции присвоения в csh
Постфиксные операции
К последним относятся операции ++ и --
% @ a=10 % @ a++ % echo $a 11
Основные файловые операции
Виражения в csh могут возвращать значение в зависимости от наличия или отсутствия файла, прав доступа к нему, и.т.п. Для этого используется следующий синтаксис:
-file_test filename
где file_test и filename могут принимать следующие значения
Задания
Каждый раз когда одна или больше команд (например связанные через пайп, или последовательно) выполняються шелл создает один блок команд назывемый заданием. Фактически каждая строка введенная в строке шелла является заданием. Задание может исполняться также в фоновом режиме если при запуске в конце стоял символ &. В этом случае после запуска шелл выдаст номер задания в своей таблице заданий и номер процесса. Просмотреть таблицу активных в данный момент заданий можно воспользовавшись командой jobs . После завершения фонового процесса шелл проинформирует пользователя об этом.
% sleep 10 & [1] 73059
% jobs [1] + Running sleep 10
% ps PID TTY TIME COMMAND 71453 pts/2 0:00.03 -sh (csh) 73059 pts/2 0:00.00 sleep 10 73061 pts/2 0:00.00 ps
…. Спустя 10 секунд ….
% [1] Done sleep 10
Скрипты
сsh крипты могут как и Bourne Shell скрипты быть запущены двумя способами. Либо
csh script_file arg1 arg2 ….
либо установив атрибут исполняемости на файл и запустив его
chmod +x script_file ./script_file arg1 arg2 ….
При этом первая строчка должна содкржать полный путь к интерпретатору с префиксом #! , в нашем случае она должна выглядеть так: #!/usr/bin/csh . Без этой строчки система в качестве интерпретатора скрипта запустит Bourne Shell что приведет к ошибке. При запуске csh помещает аргументы скрипта в массив argv доступ к которым возможее через argv[1], argv[2], … Аргумента argv[0] не существует, вместо этого имя скрипта помещается в аргумент $0. Для проверки установлена ли данная переменная можно воспользоваться конструкцией
$?variable Чтобы узнать сколько значений хранит переменная нужно использовать следующий синтаксис:
$#variable
Для доступа к компонентам переменной необходимо следовать следующему правилу:
$variable[componet_number]
Также как и в Bourne Shell возможно использование переменных $n вместо argvn и $* вместо $argv. В отличии от команды read в Bourne Shell csh использует конструкцию $< для интерактивонго ввода.
Все вышесказанное иллюстрируется на следующих примерах:
% echo $#var1 var1: Undefined variable.
% set var1=a % echo $#var1 1
% set var1=(a b c) % echo $#var1 3
% echo $var1[1] a % echo $var1[1-3] a b c
% set a=($<) xxx % echo $a xxx
Еще одно отличие csh от Bourne Shell заключается в том что с помощью фигурных скобок { } можно проверять завершилась ли нормально команда помещенная в эти скобки. Например, следующий скрипт:
#!/usr/bin/csh if ({ cat /tmp/aaa }) then echo OK endif
в случае успешного вывода содержимого файла /tmp/aaa напечатает в конец фразу OK.
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (242)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |