GNU/Linux >> Linux Esercitazione >  >> Linux

Come memorizzare il risultato di un comando shell eseguito in una variabile in python?

commands.getstatusoutput funzionerebbe bene per questa situazione. (Deprecato da Python 2.6)

import commands
print(commands.getstatusoutput("cat syscall_list.txt | grep f89e7000 | awk '{print $2}'"))

os.popen funziona per questo. popen - apre una pipe da o verso il comando. Il valore restituito è un oggetto file aperto connesso alla pipe, che può essere letto. split('\n') converte l'output in list

import os
list_of_ls = os.popen("ls").read().split('\n')
print list_of_ls
import os
list_of_call = os.popen("cat syscall_list.txt | grep f89e7000 | awk '{print $2}'").read().split('\n')
print list_of_call

Usa il subprocess modulo invece:

import subprocess
output = subprocess.check_output("cat syscall_list.txt | grep f89e7000 | awk '{print $2}'", shell=True)

Modifica:questo è nuovo in Python 2.7. Nelle versioni precedenti questo dovrebbe funzionare (con il comando riscritto come mostrato di seguito):

import subprocess
output = subprocess.Popen(['awk', '/f89e7000/ {print $2}', 'syscall_list.txt'], stdout=subprocess.PIPE).communicate()[0]

Come nota a margine, puoi riscrivere

cat syscall_list.txt | grep f89e7000

A

grep f89e7000 syscall_list.txt

E puoi persino sostituire l'intera istruzione con un singolo awk script:

awk '/f89e7000/ {print $2}' syscall_list.txt

Porta a:

import subprocess
output = subprocess.check_output(['awk', '/f89e7000/ {print $2}', 'syscall_list.txt'])

Linux
  1. C'è un modo per trovare il tempo di esecuzione dell'ultimo comando eseguito nella shell?

  2. Come memorizzare un comando in una variabile in uno script di shell?

  3. Come ottenere PYTHONPATH nella shell?

  4. Come eseguire il codice nella shell Django da uno script Python esterno?

  5. Come posso eseguire il loop sull'output di un comando di shell?

Come eseguire un comando Shell con Python

Come memorizzare un comando Linux come variabile nello script della shell

Linux:come annullare l'impostazione della variabile di ambiente "http_proxy" in Python?

Come eseguire un comando in uno script della shell?

Come ottenere il contenuto di una pagina Web in una variabile di shell?

Come installo uno script da eseguire ovunque dalla riga di comando?