Обрабатывать имя файла с пробелами внутри 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

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

12
задан Hennes
14.11.2022 12:35 Количество просмотров материала 3212
Распечатать страницу

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 2022-11-15 20:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх