não é possível executar o vlc a partir do shell script

não é possível executar o vlc a partir do shell script

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/shpara #!/bin/bashe veria se isso não resolve o problema.

informação relacionada