bash – командный процессор

Некоторые заметки по bash

-f проверка существования файла. True if file exists.
-x проверка существования файла с правами на запись. True if file exists and is executable.
-d проверка существования директории. True if file exists and is a directory.

Логические операции:

&& логическое И (and)

if [ $condition1 ] && [ $condition2 ]

То же самое, что:

if [ $condition1 -a $condition2 ]

Возвращает true если оба операнда condition1 и condition2 истинны.

if [[ $condition1 && $condition2 ]]

Тоже верно. Обратите внимание: оператор && не должен использоваться внутри [ ... ].
Оператор &&, в зависимости от контекста, может так же использоваться в И-списках для построения составных команд.
 

|| логическое ИЛИ (or)

if [ $condition1 ] || [ $condition2 ]

То же самое, что:

if [ $condition1 -o $condition2 ]

Возвращает true если хотя бы один из операндов истинен.

if [[ $condition1 || $condition2 ]]

Тоже верно. Обратите внимание: оператор || не должен использоваться внутри [ ... ].

Например,

[ -f /tmp/purgestart ] && echo "exist" || (touch /tmp/purgestart &&  echo "not exist")

или

mkdir "$point" || exit "$?"

сделать директорию или выйти если не получится

или команда сборщика мусора php, запускаемая из системного крона Ubuntu:

[ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
Метки: . Закладка Постоянная ссылка.

Добавить комментарий

Ваш e-mail не будет опубликован.

*