Вещи, которые я пробовал:
Перенаправили переменную в файл и искали в hexedit нечетные символы.
Аналогичным образом проверяется сценарий на наличие нечетных символов.
Сценарий выполнялся напрямую с / bin / bash.
Сделан новый скрипт с только нефункциональным кодом.
Поскольку возвращаемый путь относительно, [~ / Music / Eagles / Desperado] попробовал его как [/home/freebird/Music/Eagles/Desperado].
Поскольку [Музыка] - это мягкая ссылка на другой диск, попробуйте его как [/ mnt / data / Music / Eagles / Desperado]
Использовали орлов потому что я не хотел иметь дело с [~ / Music / Alice Cooper / School's Out] до тех пор, пока у меня не работал более простой случай!
У него нет CR или других посторонних персонажей от редактирования в Windows или где-либо еще - не использовал Windows ни для чего, кроме Freecell и Spider Solitaire с 2007 года.
Ничто до сих пор не может преобразовать полученный путь в удобство использования изнутри скрипта, ВСЕ работают с терминала (включая CD).
Вот фактическое сообщение об ошибке из недавней попытки:
freebird@nest:~$ ~/check.sh
/home/freebird/check.sh: line 8: cd: ~/Music/Eagles/Desperado: No such file or directory
Есть ли у меня дальнейшие подозрения?
Вот скрипт проверки для тестирования:
[ 111]Он по-прежнему содержит различные «тестовые» дополнения, эквивалент рассеянного printf (), чтобы увидеть, что происходит:)
новая версия сценария тестирования:
#!/bin/bash
file_path=`audtool --current-song-tuple-data file-path`
file_path=$(eval echo $file_path)
echo > test2 ${file_path}
${file-path}="$HOME"${file_path:1}
echo > testpath ${file_path}
cd ${file-path}
#cd -P "${file-path}"
pwd
exit 1
if [[ ! -e "folder.jpg" ]]; # if no art work found
then
cp ~/Work/headphone.png /tmp/cover.png # put in placeholder
echo "Placeholder"
else
convert "${file_path}""/folder.jpg" -resize 120x120 /tmp/cover.png # ready for showing
echo "found cover"
fi
New сообщения об ошибках:
freebird@nest:~$ ~/check.sh
/home/freebird/check.sh: line 5: path=/home/freebirdhome/freebird/Music/Eagles/Desperado: No such file or directory
/home/freebird/check.sh: line 7: cd: path: No such file or directory
/home/freebird
freebird@nest:~$
Я предполагаю, что команда audtool --current-song-tuple-data file-path
возвращает строку, которая начинается с ~
. Вы должны расширить эту строку, чтобы символ ~
был заменен вашей домашней папкой. Один из методов такой:
file_path=$(eval echo $file_path)
Пожалуйста, вставьте вышеприведенный оператор сразу после строки, выполняющейся audtool ...
.
Кроме того, удалите строку 5
${file-path}="$HOME"${file_path:1}
, это бесполезно. Замените file-path
на file_path
в выражении cd
.