Определяет идентификатор раздела как SWAP Linux
. Запись раздела в главной записи Master Boot устройства содержит шестнадцатеричное значение этого типа раздела. В этом случае это будет 0x82
.
Проблема в каждой операционной системе интерпретирует их разные. Это теоретически возможно, что если вы используете две операционные системы с тем же жестким диском, тот же код может использоваться для обозначения двух различных типов раздела.
Например, в операционной системе Linux ID 0x82
означает своп и в Solaris он определяет нормальный раздел.
Однако тип раздела просто отмечает раздел. Вы можете создать пространство Linux Swap в таком разделов с Mkswap
.
-121--205475-
Линия ACL может быть следующей:
deny condition = ${lookup{$localpart}nwildlsearch{/path/to/the/black.list}{yes}{no}}
, в то время как , в то время как
Black.List
содержит PCRE Regexes по одному на линию:
^.*[0-9].*
^.*[!@#$%^&*()_+].*
^.*sales.*
Попробуйте с помощью , если $FLAG_Control && [ -d /path/to/dir ]; ...
. Обратите внимание, что скобки не являются частью синтаксиса для if
; в этом случае вы хотите, чтобы $FLAG_Control
интерпретировалась как команда (true
или false
), и это хорошо сыграет с &&
и другим пунктом [ ... ]
. (Это предполагает, что ваша переменная всегда устанавливается либо в true
, либо в false
. )
Причину, по которой Ваш начальный тест не делает того, что Вы имели в виду, можно увидеть в документации к test
(также известной как [
):
-n STRING
the length of STRING is nonzero
STRING equivalent to -n STRING
Так как false
здесь не имеет особого значения, то она просто воспринимается как непустая строка, которая интерпретируется как истинное значение.
Последние несколько месяцев я учусь писать сценарии бэша. Что я узнал, так это то, что в bash нет булевых переменных. Однако, это не значит, что нет никаких булевых значений.
If/then ищет 1 или 0. Now.... здесь предостережение: 0 - правда, а все остальное - ложь. Например, когда вы проверяете, существует ли непосредственно a, результат возвращается как 0, а не 1.
Если вы получите какой-либо код ошибки от вызываемой функции, вы можете поймать эту ошибку в ловушку.
Итак, попробуйте вместо этого:
FLAG_Control=1
if [ $FLAG_Control ] && [ -d /path/to/dir ];then
echo "Run script.."
fi
Ближайшим к истинным значением для оболочки переменная является значение set . От него также зависят некоторые собственные свойства параметров. Например:
FLAG=
[ -d "${FLAG:+$HOME}" ] || ! echo \
either \$HOME is not a directory or \$FLAG is null or unset
Выше $ FLAG
условно расширяется до значения $ HOME
, только если оно установлено, а не null. Есть несколько вариантов этого, но общая суть в том, что значение параметра не всегда так важно, как то, имеет ли параметр значение . Установка ФЛАГ
на любое значение, указанное выше, приведет к истинному возврату из теста
, а не к отказу.