Обрабатывать имя файла с пробелами внутри Bash-скрипта

в мой 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 "nb")
# 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

Я пробовал довольно долгое время, но я не могу заставить мой сценарий работать. Что странно, если я убегаю та же команда, которую мой скрипт должен создать вручную (повторяя ее внутри моего скрипта) в оболочке, на самом деле работает. Но не в моем сценарии. Намеки есть?

5
задан Hennes
источник

1 ответов

заключите имена переменных в кавычки:

mp3file="/media/music/Punk-O-Rama Vol.5 \[MP3PRO\]/01 - Nofx - Pump up the Valium.mp3"
echo "Command: mp3info -x \"$mp3file\""
mp3info -x "$mp3file"

Я также удалил лишнее echo команды и побега, что не надо.

9
отвечен Cry Havok 2011-01-09 13:11:59
источник

Другие вопросы bash bash-scripting filenames