Разбиение на разделы Linux и объявление файловой системы монтирования

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

  • Вы можете проверить, соответствует ли $0названию вашего скрипта; если это так, это не источник, поэтому напечатайте сообщение об ошибке и выход:

    if [ "${0##*/}" = "myscript" ]; then
        echo "Don't run me, source me" >&2
        exit 1
    fi
    

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

    Вариантом этого может быть проверка $0на соответствие содержимому /etc/shells, если это допустимое ограничение (, т.е. сценарии ваших оболочек запускаются только с использованием перечисленных там оболочек, что ни в коем случае обязательство ).

  • Если ваш скрипт предназначен только для использования в интерактивной оболочке, вы можете проверить это — если он запускается, а не загружается, он не будет в интерактивной оболочке:

    case "$-" in
    *i*) ;;
    *) echo "Don't run me, source me" >&2; exit 1 ;;
    esac
    
0
19.09.2020, 00:27
1 ответ

blkidопределяет тип контента устройства на основе метаданных контента. В вашем случае /dev/mmcblk0p32фактически отформатирован как файловая система ext2.

С другой стороны, тип файловой системы в /proc/mountsимеет ту же семантику, что и параметрmount's -t:, тип с точки зрения ядра (, т. е. драйвер для использования ).

Драйвер файловой системы ext4может и, очевидно, широко используется для монтирования файловых систем ext2и ext3. Изman 5 ext4:

... They are general purpose file systems that have been designed for extensibility and backwards compatibility. In particular, file systems previously intended for use with the ext2 and ext3 file systems can be mounted using the ext4 file system driver, and indeed in many modern Linux distributions, the ext4 file system driver has been configured to handle mount requests for ext2 and ext3 file systems.

Скорее всего, ваш /dev/mmcblk0p32был смонтирован с передачей -t ext4в mountв командной строке или с использованием ext4в качестве типа в fstab.

2
18.03.2021, 23:04

Теги

Похожие вопросы