Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
bash:developing [2018/03/06 10:05] – [Массивы] mirocow | bash:developing [2023/06/24 12:36] (текущий) – [R] mirocow |
---|
===== Q ===== | ===== Q ===== |
===== R ===== | ===== R ===== |
| |
| <code bash> |
| $ IFS=' ' read -r -a DATABASES_SELECTED <<< "$DATABASES_SELECTED" |
| $ read str <<< " x "; echo "-$str-" |
| -x- |
| $ IFS="" read str <<< " x "; echo "-$str-" |
| - x - |
| $ IFS= read str <<< " x "; echo "-$str-" |
| - x - |
| $ _ |
| </code> |
| |
| * IFS=";" выставляем делимитер разбивки (в нашем случае ";") |
| * set -- $line - разбиваем строку, после чего каждая ее часть будет доступна как $1, $2, ... |
===== S ===== | ===== S ===== |
| |
====== test ====== | ====== test ====== |
| |
* Параметры: | * Параметры: |
* -f - Наличие файла | * ''-b file'' — истина, если file существует и является специальным блочным устройством. |
* -d - Наличие директории | * ''-c file'' — истина, если file существует и символьное устройство. |
* -e - | * ''-d file'' — истина, если file существует и является каталогом. |
* -z - Наличие данных в строке | * ''-e file'' — истина, если file существует. |
* = | * ''-f file'' — истина, если file существует и является обычным файлом. |
* != | * ''-g file'' — истина, если file существует и имеет установленным групповой идентификатор (set-group-id). |
* Сокращенный вариант **[ ]** | * ''-k file'' — истина, если file имеет установленным «sticky» бит. |
* http://www.ibm.com/developerworks/ru/library/l-bash-test/ | * ''-L file'' — истина, если file существует и является символьной ссылкой. |
| * ''-p file'' — истина, если file существует и является именованным каналом (pipe). |
| * ''-r file'' — истина, если file существует и читаем. |
| * ''-s file'' — истина, если file существует и имеет размер больше, чем ноль. |
| * ''-S file'' — истина, если file существует и является сокетом. |
| * ''-t [fd]'' — истина, если fd открыт на терминале. Если fd пропущен, по умолчанию 1 (стандартное устройство вывода). |
| * ''-u file'' — истина, если file существует и имеет установленным бит пользователя (set-user-id). |
| * ''-w file'' — истина, если file существует и записываем. |
| * ''-x file'' — истина, если file существует и исполняем. |
| * ''-O file'' — истина, если file существует и его владелец имеет эффективный идентификатор пользователя. |
| * ''-G file'' — истина, если file существует и его владелец имеет эффективный идентификатор группы. |
| * ''file1 -nt file2'' — истина, если file1 новее (дата модификации), чем file2. |
| * ''file1 -ot file2'' — истина, если file1 старее, чем file2. |
| * ''file1 -ef file2'' — истина, если file1 и file2 имеют то же устройство и номер inode. |
| * ''-z string'' — истина, если длина string равна нулю. |
| * ''-n string'' — истина, если длина string не ноль. |
| * ''string1 = string2'' — истина, если строки равны. |
| * ''string1 != string2'' — истина, если строки не равны. |
| * ''! expr'' — истина, если выражение expr ложь. |
| * ''expr1 -a expr2'' — истина, если оба выражения expr1 и expr2 истина. |
| * ''expr1 -o expr2'' — истина, если хотя бы одно из выражений expr1 или expr2 истина. |
| * ''arg1 %оператор% arg2 -eq, -ne, -lt, -le, -gt, или -ge'' — эти арифметические бинарные операции возвращают истину, если arg1 равно (-eq), не равно (-ne), меньше чем (-lt), меньше чем или равно (-le), больше чем (-gt), или больше или равно (-ge), чем arg2, соответственно. arg1 и arg2 могут быть положительными целыми, отрицательными целыми, или специальными выражениями -l string, которые вычисляют длину string. |
| * Сокращенный вариант **[ ]** |
| |
===== Применение в коде ===== | ===== Применение в коде ===== |