Читаем Искусство программирования на языке сценариев командной оболочки полностью

Внутри (( )) производится вычисление арифметического выражения. Если результатом вычислений является ноль, то возвращается 1, или "ложь". Ненулевой результат дает код возврата 0, или "истина". То есть полная противоположность инструкциям test и [ ], обсуждавшимся выше.

<p><strong>Пример 7-3. Арифметические выражения внутри (( ))</strong></p>

#!/bin/bash

# Проверка арифметических выражений.

# Инструкция (( ... )) вычисляет арифметические выражения.

# Код возврата противоположен коду возврата инструкции [ ... ] !

(( 0 ))

echo "Код возврата \"(( 0 ))\": $?." # 1

(( 1 ))

echo "Код возврата \"(( 1 ))\": $?." # 0

(( 5 > 4 )) # true

echo "Код возврата \"(( 5 > 4 ))\": $?." # 0

(( 5 > 9 )) # false

echo "Код возврата \"(( 5 > 9 ))\": $?." # 1

(( 5 - 5 )) # 0

echo "Код возврата \"(( 5 - 5 ))\": $?." # 1

(( 5 / 4 )) # Деление, все в порядке

echo "Код возврата \"(( 5 / 4 ))\": $?." # 0

(( 1 / 2 )) # Результат деления < 1.

echo "Код возврата \"(( 1 / 2 ))\": $?." # Округляется до 0.

# 1

(( 1 / 0 )) 2>/dev/null # Деление на 0.

echo "Код возврата \"(( 1 / 0 ))\": $?." # 1

# Для чего нужна инструкция "2>/dev/null" ?

# Что произойдет, если ее убрать?

# Попробуйте убрать ее и выполнить сценарий.

exit 0

<p><strong>7.2. Операции проверки файлов</strong></p>

Возвращает true если...

-e

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

-f

обычный файл (не каталог и не файл устройства)

-s

ненулевой размер файла

-d

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

-b

файл является блочным устройством (floppy, cdrom и т.п.)

-c

файл является символьным устройством (клавиатура, модем, звуковая карта и т.п.)

-p

файл является каналом

-h

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

-L

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

-S

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

-t

файл (дескриптор) связан с терминальным устройством

Этот ключ может использоваться для проверки -- является ли файл стандартным устройством ввода stdin ([ -t 0 ]) или стандартным устройством вывода stdout ([ -t 1 ]).

-r

файл доступен для чтения (пользователю, запустившему сценарий)

-w

файл доступен для записи (пользователю, запустившему сценарий)

-x

файл доступен для исполнения (пользователю, запустившему сценарий)

-g

set-group-id (sgid) флаг для файла или каталога установлен

Если для каталога установлен флаг sgid, то файлы, создаваемые в таком каталоге, наследуют идентификатор группы каталога, который может не совпадать с идентификатором группы, к которой принадлежит пользователь, создавший файл. Это может быть полезно для каталогов, в которых хранятся файлы, общедоступные для группы пользователей.

-u

set-user-id (suid) флаг для файла установлен

Установленный флаг suid приводит к изменению привилегий запущенного процесса на привилегии владельца исполняемого файла. Исполняемые файлы, владельцем которых является root, с установленным флагом set-user-id запускаются с привилегиями root, даже если их запускает обычный пользователь[ 16 ]. Это может оказаться полезным для некоторых программ (таких как pppd и cdrecord), которые осуществляют доступ к аппаратной части компьютера. В случае отсутствия флага suid, программы не смогут быть запущены рядовым пользователем, не обладающим привилегиями root.

-rwsr-xr-t 1 root 178236 Oct 2 2000 /usr/sbin/pppd

Файл с установленным флагом suid отображается с включенным флагом s в поле прав доступа.

-k

флаг sticky bit (бит фиксации) установлен

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных