1

我正在尝试将 dmenu 的输出传送到 surf(浏览器)以浏览选定的 URL。我正在做:

cat ~/.surf/bookmarks | dmenu | surf

但是 surf 在 dmenu 使用我选择的 URL 退出之前开始。这意味着它没有使用正确的 URL 打开。我看不出问题出在哪里,因为 dmenu 在做出选择后会将 URL 打印到标准输出,并且 surf 将 URL 作为其参数。澄清一下,书签文件只在不同的行中包含 URL。

我在 i3 中使用它作为绑定符号。我也试过

surf (cat ~/.surf/bookmarks | dmenu)

fish shell 语法,因为那是我的 shell。提前致谢。

4

1 回答 1

1

正如 tkauusl 的评论中提到的,surf应该将 URL 作为命令行参数获取,而不是通过管道传输到stdin.

对于bash和 POSIX 兼容的 shell,您可以使用以下语法:

surf $(cat ~/.surf/bookmarks | dmenu)

对于其他外壳,您可能必须使用

surf `cat ~/.surf/bookmarks | dmenu`

如果 URL 可以包含空格,则应引用命令替换的结果。

surf "$(cat ~/.surf/bookmarks | dmenu)"
于 2019-04-18T08:44:39.677 回答