Прочитав справочные страницы дольше, чем хотелось бы, я пришел к выводу, что одним файлом это не сделать. Сила +dir :заключается в том, что он позволяет вам добавлять файлы для настройки конфигурации, поэтому вам не нужно редактировать какие-либо файлы пакета.
Все в /etc/auto.master.d буквально включается в /etc/auto.master и использует этот синтаксис.
Фактическое монтирование должно быть в собственном файле и иметь другой синтаксис.
Вот мой /etc/auto.master.d/tools.autofs:
/top/dir /etc/auto.tools
Все, что он делает, это помещает вторичный файл в дерево каталогов, а затем ссылается на второй файл с деталями монтирования. Вот /etc/auto.tools:
tools -ro nfsserver:/top/dir/tools
Это работает, но в итоге я решил использовать systemd automount в этом случае. Он отлично работает для таких простых монтирований и означает, что на один пакет меньше для установки и настройки. Что бы это ни стоило, ему также нужны два файла, чтобы все настроить.
В целом:
# loop until we get correct input from user
while true; do
# get input from user
# check input
# break if ok
done
Или немного конкретнее:
# loop until we get correct input from user
while true; do
read -r -p "Give your input: " answer
# check $answer, break out of loop if ok, otherwise try again
if pvs | awk 'NR > 2 {print $2}' | grep -qw -e "$answer"; then
printf '%s already exists\n' "$answer" >&2
else
break
fi
done
Примечание. :Я понятия не имею, что делает pvs
.
Вот два разных способа проверить существование VG:
vgs --readonly "$vgname"
; если эта команда завершится успешно, виртуальная группа уже существует. vgs
, группа VG уже существует. Обратите внимание, что второй метод требует от vgs
до не печатать заголовок и печатать только поле имени группы. Имя (в моей системе )часто печатается с начальными и конечными пробелами, поэтому выражение grep
выглядит именно так.
read -p "Enter the name of the volume group to be created: " vgname
while vgs --readonly "$vgname" > /dev/null 2>&1
do
read -p "Enter the name of the volume group to be created: " vgname
if vgs --noheadings -o vg_name | grep -q "^ *${vgname} *\$"
then
printf "That VG name is already taken; try something else\n" >&2
fi
done