process = subprocess.Popen(
r"ifconfig | awk '$1 {print $1}' FS=' ' ORS=,",
stdout=subprocess.PIPE,
shell=True
)
output = process.communicate()[0]
lcd.message(output)
sleep(2)
lcd.clear()
Se 'shell = True' e uma sequência forem passadas, o comando e seus argumentos devem ser listados como itens individuais da sequência como ('ifconfig', '- s').
Se uma string é passada como acima, o ipc é facilmente alcançado porque toda a string é passada para shell quando o shell é verdadeiro.
Para passar a sequência e fazer 'ipc',
process1 = subprocess.Popen(
[ 'ifconfig'],
stdout=subprocess.PIPE
)
process2 = subprocess.Popen(
[ 'awk','$1 {print $1}', 'FS=" "', 'ORS=,'],
stdout=subprocess.PIPE,
stdin=process1.stdout
)
output = process2.communicate()[0]
lcd.message(output)
sleep(2)
lcd.clear()