我正在尝试将dmenu的输出通过管道传输到浏览器(浏览器),以便浏览选定的URL。我在做:
cat ~/.surf/bookmarks | dmenu | surf
但是在dmenu使用我选择的URL退出之前开始冲浪。这意味着它无法使用正确的URL打开。我不明白问题出在哪里,因为dmenu在做出选择后将URL打印到标准输出,并且surf以URL作为参数进行工作。为了澄清起见,书签文件仅在单独的行中包含URL。
我在i3中使用它作为bindsym。我也尝试过
surf (cat ~/.surf/bookmarks | dmenu)
鱼壳语法,因为那是我的壳。
预先感谢。
答案 0 :(得分:1)
如tkauusl的评论中所述,surf
应该将URL作为命令行参数,而不是通过管道传递到stdin
。
对于bash
和POSIX兼容的shell,可以使用以下语法:
surf $(cat ~/.surf/bookmarks | dmenu)
对于其他外壳,您可能必须使用
surf `cat ~/.surf/bookmarks | dmenu`
如果URL可以包含空格,则应引用命令替换的结果。
surf "$(cat ~/.surf/bookmarks | dmenu)"