"Любая программа содержит ошибки."
Peter_I, на самом деле, "точек отказа" более чем достаточно. Несколько примеров.
Начать с шабанга. В нынешних версиях *бунту реально баш находится в /usr/bin. Работает только потому, что есть bin, симлинк, указывающий на /usr/bin. А будет-ли он завтра?
Вообще, на баш пишу, одним глазом поглядывая в "Advanced Bash Scripting". Вот пример оттуда:
Даже когда не происходит разбиения на слова, операция подстановки команд может удалять завершающие символы перевода строки.
# cd "`pwd`" # Должна выполняться всегда.
# Однако...
mkdir 'dir with trailing newline
'
cd 'dir with trailing newline
'
cd "`pwd`" # Ошибка:
# bash: cd: /tmp/dir with trailing newline: No such file or directory
cd "$PWD" # Выполняется без ошибки.
Да и вместо "обратных кавычек":
Присваивание переменных с использованием $(...) (более современный метод, по сравнению с обратными кавычками)
Мне сначала показалось, что речь именно об udf. Но вроде получается, что скрипт касается любых исо-образов. И даже не образов, а любого, что ты передашь в параметре.
если в mc просто нажать на *.iso, он же монтируется.
Формально - да. Пользуйся, по-моему это удобней твоего скрипта. Может интересно, в "user menu" у меня есть пункт "монтировать что угодно, куда угодно".
Пользователь добавил сообщение 30 Ноября 2020, 14:47:59:
Свой fstab я уродовать не стал. Запустил твой скрипт. Как и следовало ожидать, ругается.
В ветке else изменил команду монтирования:
mount -o loop /tmp/udf ${dest}
Заработало. Проверил на исо и скваш. В переменной dest - куда монтируем.
Плюсы, по сравнению с твоим вариантом:
1. Не портим fstab всякой левизной.
2. Не привязаны к loop0.
3. Не привязаны к источнику и приемнику. Задавай их переменными и монтируй "что нужно куда нужно".
4. Не привязаны к файловой системе.
5. Опять-же, за счет отсутствия связи с fstab, проще модернизировать. Например, замена "loop" на "bind" позволяет монтировать каталоги.