Вот небольшой фрагмент моего кода с использованием pexpect:
child.expect('tc@')
child.sendline('ps -o args | grep lp_ | grep -v grep | sort -n')
child.expect('tc@')
print(child.before)
child.sendline('exit')
и затем вывод:
user@myhost:~/Python$ python tctest.py
tc-hostname:~$ ps -o args | grep lp_ | grep -v grep | sort -n
/usr/local/bin/lp_server -n 5964 -d /dev/usb/lp1
/usr/local/bin/lp_server -n 5965 -d /dev/usb/lp0
{lp_supervisor} /bin/sh /usr/local/lp/lp_supervisor /dev/usb/lp0 SERIAL#1 /var/run/lp/lp_pid/usb_lp0
{lp_supervisor} /bin/sh /usr/local/lp/lp_supervisor /dev/usb/lp1 SERIAL#2 /var/run/lp/lp_pid/usb_lp1
user@myhost:~$
Есть 4 строки вывода. Первые две строки показывают порт принтера, которому назначено USB-устройство (EX: первая строка показывает, что порт 5964 назначен lp1)
3-я и 4-я строки показывают, какой серийный номер устройства назначен какому USB-порту. (Пример: SERIAL # 1 назначен для lp0)
Мне нужно как-то проанализировать этот вывод, чтобы я мог сделать следующее:
If SERIAL#1 is not assigned to 5964:
run some command
else:
do something else
If SERIAL#2 is not assigned to 5965:
run some command
else:
do something else
Я не уверен, как манипулировать этим выводом, чтобы я мог получить нужные переменные. Любая помощь приветствуется.