Я хочу запустить следующие строки команд Linux bash
внутри программы python.Как запустить многострочные команды bash внутри python?
tail /var/log/omxlog | stdbuf -o0 grep player_new | while read i
do
Values=$(omxd S | awk -F/ '{print $NF}')
x1="${Values}"
x7="${x1##*_}"
x8="${x7%.*}"
echo ${x8}
done
Я знаю, что для команды однолинейной, мы можем использовать следующий синтаксис:
subprocess.call(['my','command'])
Но, как я могу использовать subprocess.call
, если есть несколько команд в нескольких строках!?
Я не знаю, что это правильное решение, но в Баше вы можете заменить несколько строк с полом -colons. Например, 'tail/var/log/omxlog | stdbuf -o0 grep plater_new | при чтении i; do Values = $ (omxd S | awk -F/'{print $ NF}'); x1 = "$ {Значения}"; ... и т. д. Это, конечно, не очень читаемо, но оно должно работать. Есть ли причина, по которой у вас не может быть скрипт bash? – Guest
Почему вы не можете поместить его в сценарий? – Inian
В этом посте есть некоторые хорошие вещи об использовании subprocess.pipe http://stackoverflow.com/a/13332300/1113788 другой возможностью может быть просмотр библиотеки ткани python, которая имеет различные возможности для выполнения локального и удаленного кода – davidejones