Ниже приводится фрагмент программы Shell, связанный с обработкой сигналов.
:
#
# Установка подпрограмм обработки сигналов
#
trap "echo
trap "echo
trap "echo
#
# Замечание: Если вы перешли в другой каталог, вы можете
# сбросить прерывание SIGQUIT с обнаружением файла "core".
# Для этого вставьте соответствующую строку после команды
# cd.
#
trap "echo
echo " Going into loop0
while true
do
cd /tmp
trap "echo
lf
cd /usr
trap "echo
lf
sleep 1
done
echo " Leaving the loop 0
exit 0
Существует несколько специальных команд, являющихся внутренними для Shell. Интерпретатору не требуется создавать подоболочку для выполнения этих команд и следовательно не создаются дополнительные процессы. Эти команды рекомендуется использовать везде, где это возможно, т.к. они работают быстрее и эффективнее, чем другие команды UNIX. Некоторые из специальных команд мы уже рассмотрели, т.к. они влияют на управление процессами. Это точка (.), break, continue, exit и trap. Команда set также является специальной командой. Описание остальных специальных команд приводится ниже:
: Пустая команда. Она не делает ничего и может использоваться для вставки комментариев в процедуры. Ее код завершения равен 0 (true). Все аргументы, передаваемые команде :, проверяются на синтаксические ошибки. Если выдается сообщение об ошибке, заключите эти аргументы в кавычки. Подстановка параметров выполняется как и для любых других команд.
cd arg Делает arg текущим каталогом. Если arg не является каталогом или у пользователя нет права доступа к нему, команда завершается с ненулевым кодом завершения. Указание cd без аргументов эквивалентно вводу "cd $HOME", что возвращает вас в каталог загрузки.
exec arg ... Если arg является командой, то Shell выполняет ее, не создавая подоболочки. В командной строке допускаются аргументы переадресации ввода-вывода. Если указаны только аргументы, перенаправляющие ввод-вывод, то изменяются только ввод-вывод самого интерпретатора Shell.
hash [-r] name Этой командой запоминается место в пути поиска команды, указанной в name. Опция –r указывает Shell, что старые значения можно стереть. Если никаких аргументов не указывается, то выводится информация о запомненных командах. Hits - это количество раз, которое команда вызывалась Shell.
Cost - это мера затрат, необходимых для нахождения команды. Бывают ситуации, требующие пересчета места расположения команды.
newgrp arg... Команда newgrp при выполнении создает новый интерпретатор Shell, который заменяет старый. Помните, что в новом Shell будут определены только переменные системы. Все переменные, которые раньше были помечены как экспортируемые, теперь станут обыкновенными.
pwd Печатает текущий каталог.
read var... Из стандартного ввода считывается одна строка и первое слово интерпретируется как значение первой переменной, второе - как значение второй, и т.п. Все оставшиеся считанные слова присваиваются последней переменной. Код завершения равен нулю, если не был считан символ конца файла.
readonly var... Указанные переменные помечаются как пригодные только для чтения, так что никаких последующих переприсвоений им сделать нельзя. Если никаких аргументов не указано, то выводится список всех помеченных таким образом переменных и переменных, которые экспортируются.
return n Вызывает возврат из функции с кодом завершения, равным n. Если n не указано, то код завершения равен коду завершения последней выполненной команды.
times Печатает суммарное время, использованное пользователем и процессами, запущенными из текущей оболочки.
type name Для каждого указанного имени показывает, как оно будет интерпретироваться в случае, если будет использоваться в качестве имени команды.
ulimit [ -f] n Эта команда устанавливает предел размера записываемого файла равным n блоков. Флаг -f устанавливает этот предел для файлов, записываемых дочерними процессами (считываться могут файлы любого размера). Команда, указанная без аргумента, показывает текущий установленный предел.
umask nnn Устанавливает маску для создания файлов пользователя равной nnn. Если nnn отсутствует, то печатается текущее значение маски. Эта битовая маска используется для установки прав доступа к файлам при их создании. Например, значение маски, равное восьмеричному числу 137, соответствует следующей битовой маске и правам доступа для создаваемого файла:
пользоват.
группа
другие
восьмеричн
бит. Маска
доступ
rw-
r--
---
unset name Для каждого указанного имени удаляет соответствующую переменную или функцию. Переменные PATH, PS1, PS2, MAILCHECK и IFS удалить нельзя.
wait n Shell ждет завершения всех активных дочерних процессов. Если n указано, то Shell ждет завершения только указанного процесса. Код завершения команды wait всегда равен 0, если не указан аргумент n, в противном случае он равен коду завершения дочернего процесса n.