Руководство по командам и shell-программированию в Linux [Денис Николаевич Колисниченко] (pdf) читать постранично, страница - 58

-  Руководство по командам и shell-программированию в Linux  (и.с. БЛЦ) 11.52 Мб, 285с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Денис Николаевич Колисниченко

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

времени
Модификатор

Описание

%U

Время, проведенное командой в пользовательском режиме (в процессорных секундах)

%S

Время, проведенное командой в режиме ядра (в процессорных секундах)

%W

Сколько раз процесс команды был выгружен на диск

%X

Средний размер сегмента кода программы, в килобайтах

%D

Средний объем памяти, используемый командой, в килобайтах

%K

Общий размер памяти, занятый командой (считается как %X+%D), в килобайтах

%M

Максимальный объем памяти, занятый командой, в килобайтах

%F

Количество ошибок страниц памяти

%I

Количество операций ввода

%O

Количество операций вывода

Перед тем как приступить к рассмотрению управляющих структур, рассмотрим
применение скобок в tcsh. Предположим есть переменная:
$ set aa=abra

Потом нам нужно вывести ее в составе строки, для этого мы будем использовать
фигурные скобки:
$ echo ${aa}cadabra
abracadabra

Глава 16. Сценарии на tcsh

203

16.3.4. Управляющие структуры
Условный оператор if
Синтаксис оператора if очень прост:
if (выражение) команда

Команда будет выполнена, если выражение истинно. Выражения формируются
так же, как в языке C. В листинге 16.1 представлен небольшой сценарий, проверяющий количество аргументов, переданных ему.
Листинг 16.1. Первый сценарий на tcsh
#!/bin/tcsh
if ( $#argv == 0 ) echo "Аргументы не заданы"

Также можно использовать следующее выражение:
-n имя_файла

В данном случае возможные варианты n представлены в табл. 16.4.
Таблица 16.4. Значения n
n

Описание

b

Файл является блочным устройством (обмен данными с устройством осуществляется блоками данных)

c

Файл является символьным устройством (обмен данными с устройством
осуществляется посимвольно)

d

Файл является каталогом

e

Файл существует

g

Для файла установлен бит SGID (см. главу 4)

k

Для файла установлен "липкий" бит

l

Файл является символической ссылкой

o

Файл принадлежит текущему пользователю

p

Файл является именованным потоком (FIFO)

r

У пользователя есть право чтения файла

s

Файл не пустой (ненулевой размер)

S

Файл является сокетом

t

Дескриптор файла открыт и подключен к экрану

u

Для файла установлен SUID (см. главу 4)

w

У пользователя есть право записи файла

Часть III. Программирование в Linux

204

Таблица 16.4 (окончание)
n

Описание

x

У пользователя есть право выполнения файла

X

Файл является встроенной командой или его исполнимый файл найден
при поиске в каталогах, указанных в $path

z

Файл пуст (нулевой размер)

Рассмотрим пример использования данного условия:
if -e $1 echo "Файл существует"

Условный оператор if..then..else
Условный оператор if..then..else похож на if, только добавляется блок else
(иначе), который выполняет команды в случае ложности условия. Сокращенная
версия оператора выглядит так:
if (выражение) then
команды, которые будут выполнены в случае истинности выражения
endif

Полная версия оператора выглядит так:
if (выражение) then
команды, которые будут выполнены в случае истинности выражения
else
команды, которые будут выполнены в противном случае (когда выражение = false)
endif

Существует еще одна форма этого оператора, точнее, это отдельный оператор
if..then..elif:
if (выражение1) then
команды (если выражение1 = true)
else if (выражение2) then
команды (если выражение2 = true)
. . .
else
команды (если ни одно из выражений не равно true)
endif

Глава 16. Сценарии на tcsh

205

Рассмотрим небольшой пример использования условного оператора (листинг 16.2).
Листинг 16.2. Пример использования условного оператора
#!/bin/tcsh
# Получаем число из командной строки
set num = $argv[1]
set flag
#
if ($num < 0) then
@ flag = 1
else if (0