Нет такого файла или каталога - bash

1114] У меня заканчиваются идеи (и источники идей) по этому вопросу. Я получаю путь к файлу от Audacious и пытаюсь получить обложку альбома из каталога, на который есть ссылки. Предоставленная информация верна и работает в терминале.

Вещи, которые я пробовал:

  1. Перенаправили переменную в файл и искали в hexedit нечетные символы.

  2. Аналогичным образом проверяется сценарий на наличие нечетных символов.

  3. Сценарий выполнялся напрямую с / bin / bash.

  4. Сделан новый скрипт с только нефункциональным кодом.

  5. Поскольку возвращаемый путь относительно, [~ / Music / Eagles / Desperado] попробовал его как [/home/freebird/Music/Eagles/Desperado].

  6. Поскольку [Музыка] - это мягкая ссылка на другой диск, попробуйте его как [/ mnt / data / Music / Eagles / Desperado]

  7. Использовали орлов потому что я не хотел иметь дело с [~ / Music / Alice Cooper / School's Out] до тех пор, пока у меня не работал более простой случай!

  8. У него нет CR или других посторонних персонажей от редактирования в Windows или где-либо еще - не использовал Windows ни для чего, кроме Freecell и Spider Solitaire с 2007 года.

  9. Ничто до сих пор не может преобразовать полученный путь в удобство использования изнутри скрипта, ВСЕ работают с терминала (включая 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:~$ 
0
задан 18 May 2019 в 18:07

1 ответ

Я предполагаю, что команда 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.

0
ответ дан 18 May 2019 в 18:07

Другие вопросы по тегам:

Похожие вопросы: