Estou tentando desenvolver um script nautilus que leia o caminho do arquivo selecionado e enfileira-o no player vlc. O problema é que se o nome do arquivo estiver separado por espaço, precisamos adicionar '\' extra no nome do arquivo. Mas quando executo o vlc com nome de arquivo, o vlc não consegue ler o arquivo.
Quando executado no terminal:
vlc --playlist-enqueue filename\ space\ name.extension
simplesmente funciona bem
mas quando tento dar o mesmo comando do arquivo bash, o vlc não consegue ler o arquivo. Meu script funciona para nomes de arquivos não espaciais. Qual é o problema? Por favor ajude. Pelo menos dê recurso. Pesquisei no Google, mas não consigo encontrar uma solução adequada.
desde já, obrigado
Editado: meu roteiro
#!/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"
Responder1
Seu arquivo de origem é executado com bin/sh e não bin/bash
/bin/sh e /bin/bash não são a mesma coisa. Você perde muitas funcionalidades ao mudar para /bin/sh, mas isso protege você de alguns problemas de expansão do shell.
Eu mudaria o shell de #!/bin/sh
para #!/bin/bash
e veria se isso não resolve o problema.