選択したファイルパスを読み取り、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
問題が解決するかどうかを確認します。