Pagina 1 di 1
redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 16:34
da tom
Ipotizziamo che io in kde apra una konsole e dia il comando
il cui output è
Ipotizziamo altresì che io però voglia redirigere l'output ad una seconda konsole. Come faccio?
Ho provato con
ma non va (si apre una konsole vuota).
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 17:00
da targzeta
Se 'konsole' è simile a 'xterm' allora controlla tra le sue opzioni. Generalmente le consolo offrono la possibilità di essere "laciate" per eseguire dei comandi. In pratica non ridirigeresti l'output di una 'konsole' verso un altra, ma lanceresti una console che esegue il comando.
Non so se può andar bene, altrimenti dovresti avere una konsole già attiva e inviare l'output del comando verso il suo stdin che trovi in /proc/.
Emanuele
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 17:27
da tom
ciò di cui parli si ottiene con il comando
ed è un buon modo di bypassare il problema...tuttavia ciò non mi basta, io ho proprio bisogno di redirigere l'output del comando_da_lanciare alla konsole, in quanto poi alla fine devo redirigere lo stesso output ad un altro programma (kdialog, un programma simile ad xmessage), che mi visualizzi il risultato finale, ed il risultato finale di
è diverso da
Codice: Seleziona tutto
comando_da_lanciare | modo_di_redirigere_l_output_alla_konsole
Infatti nel primo caso kdialog mi visualizzerà esclusivamente l'output del comando konsole, nel secondo (ed è quello che voglio) l'output del comando_da_lanciare
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 19:46
da freefred
Scusa se ti dico una cosa ovvia perche' non ho capito benissimo.
Se in una konsole dal menu edit scegli "copy input to" non fa quello che vorresti?
bye
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 20:06
da neongen
echo "pippo" 1> /proc/<pid della console>/fd/1
ma non ho capito se è quello che ti serve
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 20:16
da targzeta
Almeno non sono il solo a non aver capito cosa si vuole fare

. Comunque, neongen, dovrebbe essere 0 (stdin) e non 1 (stdout).
Emanuele
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: ven 12 nov 2010, 20:47
da 414N
tasodan ha scritto:io ho proprio bisogno di redirigere l'output del comando_da_lanciare alla konsole, in quanto poi alla fine devo redirigere lo stesso output ad un altro programma (kdialog, un programma simile ad xmessage), che mi visualizzi il risultato finale, ed il risultato finale di
è diverso da
Codice: Seleziona tutto
comando_da_lanciare | modo_di_redirigere_l_output_alla_konsole
Infatti nel primo caso kdialog mi visualizzerà esclusivamente l'output del comando konsole, nel secondo (ed è quello che voglio) l'output del comando_da_lanciare
Credo che anche agli altri non sia chiaro a cosa ti serva aprire una nuova konsole riempiendola con l'output di un comando lanciato in un'altra shell per poi usare kdialog per mostrare un "risultato finale".
Immagino che il tuo sia un problema in ambito di bash scripting. Perché non salvi l'output del comando in questione in una variabile e poi ne usi il contenuto direttamente con kdialog?
Per esempio:
Codice: Seleziona tutto
CMD_OUT=`comando da eseguire` # oppure $(comando da eseguire) , se preferisci
kdialog --msgbox "$CMD_OUT"
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: sab 13 nov 2010, 0:17
da robbybby
neongen ha scritto:echo "pippo" 1> /proc/<pid della console>/fd/1
Mi avete incuriosito, e ho provato. Non è:
ma è:
1 è il link a
/dev/ttyx, mentre 11 è il link a
/dev/pts/x
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: sab 13 nov 2010, 19:26
da tom
414N ha scritto:Credo che anche agli altri non sia chiaro a cosa ti serva aprire una nuova konsole riempiendola con l'output di un comando lanciato in un'altra shell per poi usare kdialog per mostrare un "risultato finale".
Allora, mi spiego. Praticamente mi sto dilettando con uno script bash da lanciare dal menù di kde. Tale script deve compilare i moduli del kernel per virtualbox, il tutto in modo più user-friendly possibile. Ecco i passi che esegue:
1) apre una finestra di kdialog (dove devo clikkare su si o no) che mi chiede se voglio compilare i moduli, io clikko "si";
2)
a questo punto (dopo che ho clikkato su "si") si apre la konsole di kde che esegue il comando '/etc/rc.d/rc.vboxdrv setup' (è questo il comando_da_lanciare di cui parlavo), poi non appena termina di eseguire tale processo la konsole si chiude;
3) infine si apre una finestra di popup mi informa che tutto è andato a buon fine (di nuovo kdialog).
Quindi devo aprire una nuova konsole riempiendola con l'output di un comando (/etc/rc.d/rc.vboxdrv setup) lanciato NON da un'altra shell, ma da uno script che è stato lanciato dal kmenu. In teoria potrei anche lanciare '/etc/rc.d/rc.vboxdrv setup' così, in modo semplice, senza visualizzare il suo output in nessuna shell e passare direttamente al passo 3, ma poiché tale output dura circa 30-40 secondi sul mio pc, il risultato sarebbe che dopo aver clikkato su "si" (passo 1) dovrei stare per mezzo minuto senza visualizzare nulla sul mio monitor (passo 2), per poi veder spuntare dopo 30-40 secondi una finestrella dal nulla (passo 3). Sarebbe funzionale ma esteticamente sgradevole.
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: sab 13 nov 2010, 19:44
da 414N
Mi sembra che sia inutilmente complicato l'aprire una finestra di konsole per poi richiuderla appena finito di eseguire il comando del quale ti interessa osservare l'output.
Fai un unico script, strutturato più o meno come segue:
Codice: Seleziona tutto
kdialog --yesno "richiesta"
/etc/rc.d/rc.vboxdrv setup
if [ $? -ne 0 ]
then
kdialog --error "Qualcosa è esploso"
else
kdialog --msgbox "Tutto ok"
fi
Ovviamente, prima controlla il valore ritornato dal comando /etc/rc.d/rc.vboxdrv setup sia in caso di errore sia in caso di successo.
Lo puoi fare manualmente lanciandolo e poi controllando il valore in $? con una echo.
Per quanto riguarda il visualizzare la situazione, ti basta creare un file .desktop che lanci il tuo script (puoi tocciare da uno qualunque presente in /usr/share/applications per prendere spunto) nel quale aggiungi la voce
per fare aprire al DE un terminale nel quale mostrare l'output del comando lanciato. Dopodiché aggiungi il file in questione al menù di KDE.
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: sab 13 nov 2010, 19:51
da tom
si, lo so, è più complicato ma, come dicevo prima, esteticamente più gradevole...comunque anche se odio i file .desktop, questa mi sembra provvisoriamente l'opzione migliore, appena faccio qualche tentativo vi faccio sapere.
Re: redirigere l'output di un comando alla konsole di kde?
Inviato: sab 13 nov 2010, 21:47
da neongen
bè se è solo per dare un feedback che qualcosa sta accadendo...
Codice: Seleziona tutto
#!/bin/bash
dbusRef=`kdialog --progressbar "Vbox driver setup" 3`
kdialog --yesno "richiesta"
qdbus $dbusRef Set "" value 1
/etc/rc.d/rc.vboxdrv setup &> /tmp/vboxdrvsetup
qdbus $dbusRef Set "" value 2
kdialog --textbox /tmp/vboxdrvsetup
qdbus $dbusRef Set "" value 3
kdialog --msgbox "qui ci metti che hai finito"
qdbus $dbusRef close