我有这个bash脚本,我想直接从Python调用:
#!/bin/bash
for usb in $(ls /dev/ttyUSB*); do echo $(udevadm info $usb | grep ID_SERIAL= | cut -d ' ' -f 2) $usb; done
第一部分出现错误:
from subprocess import Popen
Popen('ls /dev/ttyUSB*'.split())
我知道这是由于Popen运行sh
,并且不支持通配符,所以我尝试通过以下方式调用bash
:
from subprocess import Popen
Popen('/bin/bash ls /dev/ttyUSB*'.split())
OR
Popen('/bin/bash "ls /dev/ttyUSB*"'.split())
但是得到了
/ bin / ls:/ bin / ls:无法执行二进制文件
但是,文件确实存在:
ls /dev/ttyUSB*
输出:/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3
解决此问题后,我仍然必须了解如何在()中间使用管道[即-for usb in $(ls /dev/ttyUSB*); do echo $(udevadm info $usb | grep