将带有空格的参数传递给新协议

将带有空格的参数传递给新协议

我已经创建了新的协议处理程序,用于通过网页打开应用程序,其中链接将打开已安装的应用程序,如终端/chrome 等,如下所建议:(可以从 HTML 打开 Ubuntu 应用程序吗?), 在我的情况下,它的 nautilus 文件浏览器.. 无需任何参数即可完美运行,但是当我传递像'app://nautilus /home/user/dir/my dir/'这样的参数时(参数中有空格),它甚至尝试使用转义序列('\')来替换空格,但仍失败,没有运气。

在这里,我尝试以随机顺序打开目录,但无法为每个目录创建符号链接。有人能帮我将带有空格的参数传递给新创建的协议吗?

任何帮助都值得赞赏,提前致谢。

尝试创建一个只有 nautilus $@ 和 nautilus "$@" 的 shell 脚本 test.sh 并运行 test.sh "/home/usr/dir/my\ dir" 和以上所有组合,但没有成功

答案1

你需要把那部分放在“之间。所以那将是

"app://nautilus /home/user/dir/my dir/"

这是处理空格和参数的常用方法。

替代方案:html 使用 url 编码。空格将变成%20

app://nautilus%20/home/user/dir/my%20dir/

相关内容