В моем Bash-скрипте я должен обрабатывать имена файлов с пробелами. Вот важные строки в моем скрипте:
mp3file="/media/d/Music/zz_Hardcore/Sampler/Punk-O-Rama\ Vol.5\ \[MP3PRO\]/01\ -\ Nofx\ -\ Pump\ up\ the\ Valium.mp3"
echo "Command: mp3info -x `echo $mp3file`"
mp3info -x `echo $mp3file`
К сожалению, команда не работает, потому что имя файла разделено:
mp3info: invalid option -- '\'
mp3info: invalid option -- '\'
Error opening MP3: /media/d/Music/zz_Hardcore/Sampler/Punk-O-Rama\: No such file or directory
Error opening MP3: Vol.5\: No such file or directory
Error opening MP3: \[MP3PRO\]/01\: No such file or directory
Error opening MP3: Nofx\: No such file or directory
Error opening MP3: Pump\: No such file or directory
Error opening MP3: up\: No such file or directory
Error opening MP3: the\: No such file or directory
Error opening MP3: Valium.mp3: No such file or directory
Я также попытался добавить пользовательский IFS, как я читал на некоторых форумах:
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
# Script like above
IFS=$SAVEIFS
Но, таким образом, я получаю ошибку
Error opening MP3: /media/d/Music/zz_Hardcore/Sampler/Punk-O-Rama\ Vol.5\ \[MP3PRO\]/01\ -\ Nofx\ -\ Pump\ up\ the\ Valium.mp3: No such file or directory
Я пытался довольно долго, но я не могу заставить свой сценарий работать. Странно то, что если я запускаю ту же команду, которую мой сценарий должен создать вручную (повторяя ее внутри моего сценария) в командной консоли, это на самом деле работает. Но не внутри моего сценария. Есть намеки?