无法从 shell 脚本运行 vlc

无法从 shell 脚本运行 vlc

我正在尝试开发一个 nautilus 脚本,用于读取选定的文件路径并在 vlc 播放器中排队。问题是,如果文件名以空格分隔,则我们需要在文件名中添加额外的“\”。但是当我使用文件名运行 vlc 时,vlc 无法读取文件。

在终端中运行时:

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

它运行良好

但是当我尝试从 bash 文件发出相同命令时,vlc 无法读取文件。我的脚本适用于非空格文件名。问题是什么?请帮忙。至少提供资源。我在 Google 上搜索过,但找不到合适的解决方案。

提前致谢

編輯: 我的脚本

#!/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 扩展问题。

我将把 shell 从 切换#!/bin/sh#!/bin/bash并查看是否能解决问题。

相关内容