シェルスクリプトからvlcを実行できない

シェルスクリプトからvlcを実行できない

選択したファイルパスを読み取り、VLC プレーヤーでキューに追加する Nautilus スクリプトを開発しようとしています。問題は、ファイル名がスペースで区切られている場合、ファイル名に余分な '\' を追加する必要があることです。しかし、ファイル名を指定して VLC を実行すると、VLC はファイルを読み取ることができません。

ターミナルで実行する場合:

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

それはうまく機能する

しかし、bash ファイルから同じコマンドを実行しようとすると、vlc はファイルを読み取ることができません。私のスクリプトは、スペースを含まないファイル名で動作します。何が問題なのでしょうか? 助けてください。少なくともリソースを提供してください。グーグルで検索しましたが、適切な解決策が見つかりません。

前もって感謝します

編集済み: 私の脚本

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

答え1

ソースファイルはbin/bashではなくbin/shで実行されます

/bin/sh と /bin/bash は同じものではありません。/bin/sh に切り替えると多くの機能が失われますが、シェル拡張に関する懸念から保護されます。

シェルを から に切り替えて#!/bin/sh#!/bin/bash問題が解決するかどうかを確認します。

関連情報