無法從 shell 腳本執行 vlc

無法從 shell 腳本執行 vlc

我正在嘗試開發一個 nautilus 腳本,它讀取選定的檔案路徑並在 vlc 播放器中排隊。問題是,如果檔案名稱以空格分隔,那麼我們需要在檔案名稱中新增額外的“\”。但是當我使用檔案名稱運行 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/sh 而不是 bin/bash 來運行

/bin/sh 和 /bin/bash 不是同一件事。當您切換到 /bin/sh 時,您會失去很多功能,但它確實可以保護您免受某些 shell 擴充問題的影響。

我會將外殼從 切換#!/bin/sh#!/bin/bash,看看是否不能解決問題。

相關內容