Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1716 / 298 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 10:

Командные процессоры

< Лекция 9 || Лекция 10: 123456789

Псевдонимы команд

Псевдонимы - это сокращения для часто используемых длинных команд или их последовательностей. Если вы часто делаете однотипные опечатки при вводе команд, можно создать такие псевдонимы, чтобы команда с опечаткой была псевдонимом правильной команды, например:

alias telent telnet

Создать псевдоним очень просто:

alias псевдоним команда

Команда может быть последовательностью команд с ключами и аргументами, тогда ее следует заключить в апострофы:

alias ll 'ls -l'

Такая команда приведет к тому, что каждый раз при вводе ll командный процессор будет фактически выполнять команду

ls -l

Синтаксис определения псевдонимов в разных командных процессорах разный. Псевдонимы обычно определяются в стартовых файлах.

Синтаксис команд alias:

командный процессор   команда alias     ключ для экспорта
sh                    alias             ll='ls -l'
csh                   alias             ll 'ls -l' 
ksh                   alias             ll='ls -l'	-x
bash                  alias             ll='ls -l'

Так же, как и переменные среды окружения, псевдонимы могут экспортироваться, т.е. передаваться "по наследству" запускаемым из данного сеанса работы другим командным процессорам. Для этого используются ключи команды alias. Команда alias является встроенной командой командного процессора.

Отмена назначенного псевдонима выполняется командой

unalias псевдоним

Переменные среды окружения

Как отмечалось в лекции 7, каждый процесс имеет свою среду окружения - специальную область, в которой хранятся имена переменных и их значения. Если нужно использовать значение переменной в командной строке, применяется конструкция

$имя_переменной

Например, echo $TERM выведет на экран значение переменной TERM. Пользователь может определить свои собственные переменные. Новая переменная появляется, как только вы даете команду присвоить значение несуществующей переменной. Переменная не имеет типа, так как считается, что все переменные имеют тип "строка". При этом если попытаться выполнить арифметическую операцию с переменными, имеющими значение неких чисел, то такая строка будет преобразована в число, число использовано в операции и результат преобразован обратно в строку.

Попробуйте:

i=2
j=3
expr $i \* $j

Присвоение переменной значения во всех командных процессорах, кроме csh, выполняется командой

VAR=value

В csh команда иная:

set VAR=value

или

setenv VAR value

Переменные со специальными названиями типа DISPLAY, TERMINFO и т.п. используют программы, которые проверяют свою среду окружения на наличие таких переменных и их значений. Поведение таких программ может изменяться в зависимости от значения переменных.

Переменные могут экспортироваться, т.е. передаваться от процессов-родителей процессам-потомкам. Для экспорта переменной надо дать команду

export имя_переменной

Если надо удалить переменную среды окружения, можно присвоить ей пустое значение (это неравнозначно удалению, но иногда этого достаточно), а можно удалить ее вовсе командой unset.

В tcsh есть возможность создавать переменные только для чтения, без права изменения значений, для этого служит команда

set -r имя=значение

Кроме того, в tcsh можно присвоить переменной значение в виде списка слов, к которым потом можно обращаться по номеру слова, начиная с 1:

set var=(hello world)
echo {$var[1]}
hello
echo {$var[2]}
world

Для вывода на экран списка всех переменных с их значениями надо дать команду set без параметров.

< Лекция 9 || Лекция 10: 123456789