não pode executar vlc a partir do shell script

0

Estou tentando desenvolver um script nautilus que leia o caminho de arquivo selecionado e en-queue no vlc player. O problema é que se o nome do arquivo é separado por espaço, então precisamos adicionar um '\' extra no nome do arquivo. Mas quando eu executar o vlc com o nome do arquivo, vlc não pode ler o arquivo.

Quando executado no terminal:

vlc --playlist-enqueue filename\ space\ name.extension

funciona bem

mas quando eu tento dar o mesmo comando do arquivo bash, em seguida, vlc não pode ler o arquivo. Meu script funciona para o nome do arquivo que não é de espaço. Qual é o problema? Por favor ajude. Pelo menos, dê recursos. Eu pesquisei mas não consigo encontrar uma solução adequada.

Obrigado antecipadamente

Editado: meu script

#!/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"
    
por shantanu 29.10.2011 / 17:35

1 resposta

2

Seu arquivo de origem é executado com bin / sh não bin / bash

/ bin / sh e / bin / bash não são a mesma coisa. Você perde muita funcionalidade quando muda para / bin / sh, mas protege você de algumas preocupações de expansão de shell.

Eu mudaria o shell de #!/bin/sh para #!/bin/bash e verificaria se isso não está resolvido.

    
por RobotHumans 11.04.2012 / 23:08