Изучим более подробно некоторые команды, которые до сих пор не рассматривались либо рассматривались поверхностно.
24.1.1. Команда pwd
Эта команда отображает текущий каталог:
$ pwd
/tmp
24.1.2. Команда set
Команда set рассматривалась при изучении процесса отладки для подключения и отключения опций. Эту команду можно также использовать для передачи аргументов в пределах сценария. Опишем, как происходит этот процесс. Предположим, что сценарий должен обработать два параметра. Вместо передачи параметров в сценарий выполняют их задание в сценарии. Для этого применяется команда set.
Формат команды:
set параметр1 параметр2..
В следующем примере параметрам присваиваются значения accounts.doc, и accounts.bak. Затем в сценарии по этим параметрам выполняется цикл.
$ pg set_ex
#!/bin/sh
set accounts.doc accounts.bak
while [ $# != 0 ]
do
echo $1
shift
done
$ set_ex
accounts.doc accounts.bak
Команду set удобно использовать, если при проверке сценария необходимы параметры. Дело в том, что вновь введенные аргументы сохраняются всякий раз, когда выполняется сценарий.
24.1.3. Команда times
Команда times иннформирует пользователя о том, сколько времени требуется для выполнения пользовательских и любых системных команд. В первой строке указывается время, которое необходимо интерпретатору shell, а во второй — время, которое нужно всем исполняемым командам. Ниже приводится пример потока вывода, который получен с помощью команды times.
$ times
0m0.10s 0m0.13s 0m0.49s 0m0.36s
Эта команда применяется довольно часто!
24.1.4. Команда type
Команда type позволяет выяснить, содержится ли некоторая команда в системе, и определить тип данной команды. Команда type также сообщает, является ли название команды действительным и где именно в системе находится эта команда. Ниже приводятся примеры использования команды type:
$ type mayday
type: mayday: not found
$ type pwd
pwd ls a shell builtin
$ type times
times ls a shell builtin
$ type cp
cp is /bin/cp
24.1.5. Команда ulimit
Команда ulimit используется для задания и отображения предельных значений, применяемых при выполнении сценария. Обычно эта команда находится в файле /etc/profile, но вы можете использовать ее для своих нужд из текущего интерпретатора shell либо из вашего файла .profile. Общий формат команды:
ulimit опции
Ниже приводится несколько опций команды ulimit; здесь рассматриваются наиболее часто применяемые опции:
| Опция | Значение |
| -a | Отображает текущие ограничения |
| -c | Ограничивает размер дампов ядра |
| -f | Ограничивает N блоками размер выходного файла, который создается исполняемым процессом |
Ниже указаны значения, полученные при выполнении команды ulimit:
$ ulimit -a
core file size (blocks) 10000OO
data seg size (kbytes) unlimited
file size (blocks] unlimited
max memory size (kbytes) unlimited
stack size (kbytes) 8192
cpu time (seconds] unlimited
max user processes 256
pipe size (512 bytes) 8
open files 256
virtual memory (kbytes) 2105343
Чтобы отключить выгрузку файлов ядра, установите нулевое значение для команды.
$ ulimit -с 0
$
$ ulimit -a
core file size (blocks) 0
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes] unlimited
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 256
pipe size (512 bytes) 8
open files 256
virtual memory (Kbytes) 2105343
24.1.6. Команда wait
Команда wait применяется для ожидания завершения одного из дочерних процессов. Команду wait можно определить с помощью процесса ID. Если этого не сделать, ожидание будет длиться до завершения всех дочерних процессов.
Формат команды ожидания завершения всех дочерних процессов:
$ wait
24.2. Заключение
В главе содержится обзор всех команд, встроенных в интерпретатор shell. Некоторые из них рассматривались ранее; здесь же подробно обсуждается применение этих команд
Часть 5
Совершенствование навыков по написанию сценариев