Используйте shopt -q:
shopt -q extglob && echo enable || echo disable
-q
опция make shopt
отбрасывает вывод и возвращает статус, указывающий на то, что опции установлены или не установлены.
Обратите внимание, что shopt
сообщает только опции, которые могут появиться в переменной BASHOPTS
, эти опции не действительны для set
встроенной команды.
Для проверки опций, которые действительны для set
, или могут быть отображены в SHELLOPTS
, используйте shopt -qo
:
$ bash --posix -c 'shopt -qo posix && echo enable || echo disable'
enable
Если вы используете systemd, монтирование выполняется параллельно (путем динамического преобразования записей fstab в единицы монтирования ), порядок строк не сохраняется, как можно было бы ожидать от работы systemd до -.
У вас есть невыразимая зависимость, которая не угадывается автоматически :монтирование /data/
перед монтированием /usr
. Без этого вы получаете состояние гонки.
Вы должны вручную добавить зависимость как опцию псевдомонтирования, используяx-systemd.requires=
. Итак, если предыдущая точка монтирования, которая должна быть смонтирована, /data
, это должно заставить ее работать :
/data/rootfs/var /var none x-systemd.requires=/data,bind 0 0
/data/rootfs/usr /usr none x-systemd.requires=/data,bind 0 0
В случае, если кто-то еще найдет этот вопрос, но вариант использования для /data
удаленной сетевой файловой системы, такой как NFS, параметр псевдо-монтирования_netdev
(pre -systemd, также распознаваемый systemd ), должен также добавить в запись /data/rootfs/usr
, чтобы все работало нормально, потому что none
не может подсказывать это автоматически, и его отсутствие может привести к путанице с разрешением x-systemd.requires=
.