我有一个功能,可以获取所有USB连接设备的信息。
connected_devices = :os.cmd('usb-devices | grep -A 1 Product=')
当我使用时:os.cmd,它工作正常。但是,由于:os.cmd不返回错误代码,因此我想使用它System.cmd来更好地处理错误。
connected_deivces = System.cmd("usb-devices", ["|", "grep", "-A", "1", "Product="])
因此,我尝试更改上述功能,但在管道之后不执行命令。
如何使用管道执行命令System.cmd?
System.cmd只能直接调用一个程序。os:cmd将命令传递给操作系统的默认外壳,该外壳允许您使用管道。要使用进行相同的操作System.cmd,可以/bin/sh在Unix上调用:
System.cmd("/bin/sh", ["-c", "usb-devices | grep -A 1 Product="])
Run Code Online (Sandbox Code Playgroud)