Inviare comandi da shell tramite pipe

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

Inviare comandi da shell tramite pipe

Messaggioda luis84 » mercoledì 22 maggio 2019, 10:38

Salve sto utilizzando python da linea di comando tramite pipe:

./comando.sh | python3 >> /dev/null

In comando.sh ho usato cat perché con echo avevo problemi esempio

Cat istruzione1.txt
sleep 1
cat istruzione.txt
Ecc ecc
Funziona tutto ma verso la fine vengo buttato fuori dal processo
Conoscete altri metodi per automatizzare dei comandi da dare a un programma nel mio caso python3
Python3 >>> comando invio
Naturalmente se invio i comandi manualmente da tastiera tutto funziona alla perfezione mentre automatizando con la pipe verso la fine mi butta fuori
luis84
Prode Principiante
 
Messaggi: 1
Iscrizione: maggio 2019
Sesso: Maschile

Re: Inviare comandi da shell tramite pipe

Messaggioda Filoteo » mercoledì 22 maggio 2019, 10:50

Immagino che in istruzione1.txt ci sia del codice python. Quindi perché non metterli in uno script python e eseguirlo con python3 script.py?
Filoteo
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 523
Iscrizione: agosto 2015
Desktop: Gnome
Distribuzione: Arch Linux

Re: Inviare comandi da shell tramite pipe

Messaggioda nuzzopippo » mercoledì 22 maggio 2019, 11:25

Ciao

python ha vari sistemi per interagire con la shel, uno dei più semplici è fornito dal modulo "os", il metodo popen, un semplice esempio di utilizzo :
Codice: Seleziona tutto
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> import os
>>> risp = os.popen('ls', 'r')
>>> print(risp.read())
2006_07_20.pdf
boot_analysis.svg
Condivisa
conkyrc
Copia_visione_Django_2.pdf
...


un approccio più raffinato potrebbe essere l'utilizzo del modulo subprocess, suggerirei di vederti tal tipo di mezzi, probabilmente Ti risparmieresti un po' di fatica.
[Edit] dimenticavo, i "comandi" da dare ad uno script python dipendono un po' da cosa intendi, se li intendi quali "parametri", il modulo sys permette di ottenerne la lista.
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1310
Iscrizione: ottobre 2006


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 7 ospiti

cron