Я пытаюсь разработать скрипт nautilus, который читает выбранный путь к файлу и очередь в vlc player. Проблема в том, что если имя файла разделено пробелами, тогда нам нужно добавить дополнительный «\» в имени файла. Но когда я запускаю vlc с именем файла, vlc не может прочитать файл.
При запуске в терминале:
vlc --playlist-enqueue filename\ space\ name.extension
это просто хорошо работает
, но когда я пытаюсь дать ту же команду из файла bash, тогда vlc не может прочитать файл. Мой скрипт работает для непробельного имени файла. В чем проблема? Пожалуйста помоги. По крайней мере, дать ресурс. Я погуглил, но не могу найти подходящего решения.
Спасибо заранее
Отредактировано: мой сценарий
#!/bin/sh
path=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
result=""
cnt=0
for i in $path
do
if [ $cnt -eq 0 ]
then
result=$i
else
result=$result'\ '$i
fi
cnt=`expr $cnt + 1`
done
#vlc --playlist-enqueue "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
vlc --playlist-enqueue "$result"
Ваш исходный файл работает с bin / sh, а не bin / bash
/ bin / sh и / bin / bash - это не одно и то же. Вы теряете много функциональности, когда переключаетесь на / bin / sh, но это защищает вас от некоторых проблем расширения оболочки.
Я бы переключил оболочку с #!/bin/sh
на #!/bin/bash
и посмотрел, не исправит ли это.