我正在尝试开发一个 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
并查看是否能解决问题。