Похож на простую ошибку: ${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
Вы, вероятно, хотите добавить строку как
/dev/sdb1 /media/drive1 vfat dmask=000,fmask=0111,user 0 0
кому: /etc/fstab
. Дополнительное ,user
в опциях поле позволяет любому пользователю монтировать эту файловую систему, не просто root
.
dmask и fmask являются полномочиями для каталогов и файлов соответственно. Это - восьмеричное число. И обозначает чтение, запишите и выполните полномочия для Владельца, Группы и Других пользователей.
fstab:
/dev/sdb1 /media/exampleFolderName vfat dmask=000,fmask=111 0 0
Когда, как Вы говорите, включают диск, внешний диск, например, USB должны автосмонтироваться.
/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
sudo mount -a
работать правильно? если не затем добавляют, пользовательская опция, как предложил Jonathan Callen.
–
22.04.2012, 21:00
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:58sudo chmod -R o+w /path/to/file
– Russell Hart 22.04.2012, 23:25