Linux, fat32 и etc/fstab

Похож на простую ошибку: ${ENDOFLINE%$} полосы a $ в конце $ENDOFLINE, но то, что Вы хотите сделать, использовать $ENDOFLINE буквально и имейте a $ после него для указания на конец строки.

if [[ ("$LINE" =~ "^#;") && (( ("$LINE" =~ "${ENDOFLINE}$") )) ]];

Это работает в zsh, но не в ksh или ударе. Bash требует regexp $ закрыться кавычки (иначе, это интерпретируется буквально), и ksh не нравятся двойные круглые скобки внутри [[ … ]] (это интерпретирует их как арифметическую инструкцию). Эти более простые работы строки во всех трех оболочках (отмечают это [[…]] одно из нескольких мест, где Вам не нужно "…" вокруг переменных расширений):

if [[ $LINE =~ ^"#;" && $LINE =~ $ENDOFLINE$ ]];

Если $ENDOFLINE никогда перекрытия с #; (например, если ENDOFLINE ;foo, Вы будете принимать #;;foo но отклонение #;foo), можно уменьшить это до единственного теста:

if [[ $LINE =~ ^"#;".*$ENDOFLINE$ ]];

Можно также использовать подстановочный шаблон вместо regexp здесь:

if [[ $LINE = "#;"*"$ENDOFLINE" ]];

[[…]] конструкция не существует во всех оболочках, это характерно для удара, ksh и zsh. На других оболочках (Граница, тире, что-либо POSIX), можно сделать подстановочные соответствия с case конструкция:

case $LINE in
  "#;"*"$ENDOFLINE") echo score;;
  *) echo no score;;
esac
3
23.04.2012, 02:29
2 ответа

Вы, вероятно, хотите добавить строку как

/dev/sdb1 /media/drive1 vfat dmask=000,fmask=0111,user 0 0

кому: /etc/fstab. Дополнительное ,user в опциях поле позволяет любому пользователю монтировать эту файловую систему, не просто root.

5
27.01.2020, 21:15
  • 1
    я добавил это к своему fstab: UUID=XXX-XXX /media/drive1 vfat dmask=000,fmask=0111,user 0 0. Это монтируется, и я могу создать / удаляют файлы по Samba (использующий Mac), однако я не могу переписать файлы (т.е. простой текстовый файл). Я совместно использовал папку на ext3 разделе своего Linux по Samba - я могу повторно сохранить файлы здесь, но не на диске FAT32. Какие-либо идеи, что я пропускаю? Я вхожу в систему как 'Гость', поскольку я никогда не мог получать имя пользователя / работа части пароля. Однако я не делаю это - проблема, поскольку я могу переписать файлы на ext3 расширении хорошо. Любые подсказки ценились бы - должно быть близким теперь! Спасибо, Lee. –  Lee 22.04.2012, 22:58
  • 2
    Право - я понял это. Для любого, кто получает ту же проблему, это могла бы быть конкретная программа. Например, если я редактирую текстовый файл с помощью vi или gedit на моем Mac, он прекрасен. Текстовое Редактирование не позволит мне сделать это - таким образом, они должны будут обработать коды ответа (и т.д.) по-другому. Если я делаю CP в терминале, оно копирует хорошо, но я получаю сообщение fchmod отказавший: отклоненное Разрешение - так текстовое Редактирование могло бы иметь подобную проблему. В основном проблема все решена на данный момент хотя! Парни –  Lee 22.04.2012, 23:24
  • 3
    аплодисментов Это походит на Вас, создали новый файл, который имеет полномочия для гостя, но существующие файлы не делают. выполненный sudo chmod -R o+w /path/to/file –  Russell Hart 22.04.2012, 23:25

dmask и fmask являются полномочиями для каталогов и файлов соответственно. Это - восьмеричное число. И обозначает чтение, запишите и выполните полномочия для Владельца, Группы и Других пользователей.

fstab:

/dev/sdb1 /media/exampleFolderName vfat dmask=000,fmask=111 0 0

Когда, как Вы говорите, включают диск, внешний диск, например, USB должны автосмонтироваться.

1
27.01.2020, 21:15
  • 1
    Привет - благодарит за ответ, который имеет смысл. Да это - внешний диск - я пытаюсь заставить его автосмонтироваться с этими полномочиями с помощью вышеупомянутой записи в fstab, поскольку это в настоящее время автомонтируется с неправильными полномочиями. Действительно ли fstab является неправильным способом пойти об этом? –   22.04.2012, 19:59
  • 2
    fstab должен хорошо работать для этого, если это только для этого диска. Я рекомендую получить uuid и монтироваться с этим вместо/dev/sdb1, потому что он может измениться. –   22.04.2012, 20:13
  • 3
    Эй Russell - охлаждается, я просто смотрел на это. Я добавил новую папку: /media/drive1. Я затем добавил UDID=XXXX-XXXX /media/drive1 vfat dmask=000,fmask=111 0 0 кому: /etc/fstab, но при включении диска, я добираюсь, сообщение об ошибке "Не может смонтировать объем - Вы не привилегированы для монтирования объема 'volumeName'". Взглянув на этот поток "ubuntuforums.org/showthread.php?t=1927885", но все еще получая ошибку. Действительно ли это - полномочия папки? –   22.04.2012, 20:21
  • 4
    Вы sudo пользователь. Делает sudo mount -a работать правильно? если не затем добавляют, пользовательская опция, как предложил Jonathan Callen. –   22.04.2012, 21:00
  • 5
    я добавил подсистему пользователей и это работало хорошо –  Lee 22.04.2012, 23:06

Теги

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