Обе версии используют петлевые устройства и дают одинаковый результат; короткая версия опирается на «умность», добавленную к mount
в последние годы. mount -o loop
явно указывает mount
на использование петлевого устройства; это оставляет само устройство петли на усмотрение mount
, которое будет искать доступное устройство, настраивать его и использовать. (Вы также можете указать устройство с помощью , например,.mount -o loop=/dev/loop1
.)
Хитрость заключается в том, что, получив файл для монтирования, mount
будет автоматически использовать петлевое устройство для его монтирования, когда это необходимо — т. е. , файловая система не указана, или libblkid
определяет, что файловая система поддерживается только на блочных устройствах (, и поэтому для преобразования файла в блочное устройство )необходимо кольцевое устройство.
Более подробная информация содержится в разделе об устройстве контура на справочной странице mount
.
Да, вы можете использовать переменные, но вам нужно заключать их в кавычки, чтобы оболочка знала, где заканчивается имя переменной:
$ ARTIST=foo
$ ALBUM=bar
$ echo $ARTIST_-_$ALBUM.jpg
-_bar.jpg
Итак, оболочка пытается расширить несуществующую переменную с именем $ARTIST_
. Но, если процитировать:
$ echo "$ARTIST"_-_"$ALBUM".jpg
foo_-_bar.jpg
Итак, попробуйте:
wget https://en.wikipedia.org/wiki/File:"$ARTIST"_-_"$ALBUM".jpg