You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下替代macOS open命令实现Boundary带参数链接打开的方案问询

Ubuntu 20.04下替代macOS open命令实现Boundary带参数链接打开的方案问询

嗨,我来帮你搞定这个问题!你现在在Ubuntu 20.04上用Boundary工具,原来macOS里的open命令在Ubuntu上没有,用xdg-open又没法传递额外参数,导致你的brmq函数没法正常工作,对吧?结合你给出的完整函数,我给你几个可行的解决方案:

  • 方案一:直接调用默认浏览器命令
    xdg-open的问题在于它是一个通用的打开工具封装,会忽略浏览器相关的额外参数。那我们可以跳过它,直接调用你系统里的默认浏览器命令,比如Chrome是google-chrome,Firefox是firefox。修改后的函数如下:

    function brmq() {     
        export BOUNDARY_TOKEN=$(authenticate)     
        boundary connect -exec google-chrome -target-id $1 -- http://{{boundary.addr}} --token env://BOUNDARY_TOKEN
    }
    

    这样直接调用浏览器命令就能正常传递--token这类参数了,Boundary的连接逻辑也能正常执行。如果你的默认浏览器是Firefox,把google-chrome换成firefox就行。

  • 方案二:自制一个模拟macOS open的替代脚本
    如果你想尽量保持原来的函数结构,不想改open这个命令名,可以自己写一个简单的脚本替代它。

    1. 新建一个名为open的脚本,内容如下:
      #!/bin/bash
      # 模拟macOS open命令的简单替代脚本,支持传递参数给浏览器
      if [[ $1 == "-W" ]]; then
          shift
          # 获取默认浏览器的命令名并调用,传递所有剩余参数
          default_browser=$(xdg-settings get default-web-browser | sed 's/\.desktop$//')
          $default_browser "$@"
      else
          # 非浏览器相关的操作,直接用xdg-open处理
          xdg-open "$@"
      fi
      
    2. 给脚本添加执行权限:
      chmod +x open
      
    3. 把脚本放到~/.local/bin目录下(这个目录默认在你的系统PATH里,不用额外配置)
      之后你原来的brmq函数几乎不用修改,就能像在macOS上一样使用open命令了:
    function brmq() {     
        export BOUNDARY_TOKEN=$(authenticate)     
        boundary connect -exec open -target-id $1 -- -W http://{{boundary.addr}} -token env://BOUNDARY_TOKEN
    }
    
  • 小提醒
    要确保Boundary的env://BOUNDARY_TOKEN参数能被浏览器正确识别,不过根据你说的Boundary其他命令都正常,这个参数的解析应该没问题,主要是解决命令传递参数的问题。

备注:内容来源于stack exchange,提问作者Darina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:28:03