VLC kann nicht über Shell-Skript ausgeführt werden

VLC kann nicht über Shell-Skript ausgeführt werden

Ich versuche, ein Nautilus-Skript zu entwickeln, das ausgewählte Dateipfade liest und in die Warteschlange des VLC-Players einreiht. Das Problem ist, dass wir, wenn der Dateiname durch Leerzeichen getrennt ist, zusätzliche „\“ in den Dateinamen einfügen müssen. Aber wenn ich den VLC mit dem Dateinamen ausführe, kann VLC die Datei nicht lesen.

Bei Ausführung im Terminal:

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

es funktioniert einfach gut

aber wenn ich versuche, denselben Befehl aus einer Bash-Datei einzugeben, kann VLC die Datei nicht lesen. Mein Skript funktioniert für Dateinamen ohne Leerzeichen. Was ist das Problem? Bitte helfen Sie. Geben Sie zumindest eine Ressource an. Ich habe gegoogelt, kann aber keine passende Lösung finden.

Dank im Voraus

Bearbeitet: mein Skript

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

Antwort1

Ihre Quelldatei wird mit bin/sh und nicht mit bin/bash ausgeführt

/bin/sh und /bin/bash sind nicht dasselbe. Sie verlieren viele Funktionen, wenn Sie zu /bin/sh wechseln, aber es schützt Sie vor einigen Problemen mit der Shell-Erweiterung.

Ich würde die Shell von #!/bin/shauf umstellen #!/bin/bashund schauen, ob das das Problem nicht behebt.

verwandte Informationen