代码之家  ›  专栏  ›  技术社区  ›  D.R

如何在系统中使用管道。cmd?

  •  3
  • D.R  · 技术社区  · 8 年前

    我有一个函数,它可以获取所有usb连接设备的信息。

    connected_devices = :os.cmd('usb-devices | grep -A 1 Product=')

    当我使用 :os.cmd ,工作正常。然而,自 :操作系统。cmd命令 不返回错误代码,我想使用 System.cmd 以更好地处理错误。

    connected_deivces = System.cmd("usb-devices", ["|", "grep", "-A", "1", "Product="])

    所以我尝试像上面那样更改函数,但它不会在管道之后执行命令。

    如何使用管道执行命令 系统cmd命令 ?

    1 回复  |  直到 8 年前
        1
  •  8
  •   Dogbert    8 年前

    System.cmd 只能直接调用一个程序。 os:cmd 将命令传递给允许您使用管道的操作系统的默认shell。做同样的事情 系统cmd命令 ,您可以致电 /bin/sh 如果您使用的是Unix:

    System.cmd("/bin/sh", ["-c", "usb-devices | grep -A 1 Product="])