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/sh
a #!/bin/bash
y vería si eso no soluciona el problema.