no se puede ejecutar vlc desde el script de shell

no se puede ejecutar vlc desde el script de shell

Estoy intentando desarrollar un script Nautilus que lea la ruta del archivo seleccionado y lo ponga en cola en el reproductor VLC. El problema es que si el nombre del archivo está separado por espacios, entonces debemos agregar '\' adicional en el nombre del archivo. Pero cuando ejecuto vlc con el nombre de archivo, vlc no puede leer el archivo.

Cuando se ejecuta en la terminal:

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

simplemente funciona bien

pero cuando intento dar el mismo comando desde el archivo bash, vlc no puede leer el archivo. Mi secuencia de comandos funciona para nombres de archivos que no son espacios. ¿Cuál es el problema? Por favor ayuda. Al menos da recursos. Busqué en Google pero no encuentro una solución adecuada.

gracias de antemano

Editado: mi guión

#!/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"

Respuesta1

Su archivo fuente se ejecuta con bin/sh, no con bin/bash

/bin/sh y /bin/bash no son lo mismo. Pierdes muchas funciones cuando cambias a /bin/sh, pero te protege de algunos problemas de expansión del shell.

Cambiaría el shell de #!/bin/sha #!/bin/bashy vería si eso no soluciona el problema.

información relacionada