redirigere l'output di un comando alla konsole di kde?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
tom
Packager
Packager
Messaggi: 407
Iscritto il: dom 1 nov 2009, 12:53
Nome Cognome: Tommaso D'Anna
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: xfce

redirigere l'output di un comando alla konsole di kde?

Messaggio da tom »

Ipotizziamo che io in kde apra una konsole e dia il comando

Codice: Seleziona tutto

echo "ciao mondo"
il cui output è

Codice: Seleziona tutto

ciao mondo
Ipotizziamo altresì che io però voglia redirigere l'output ad una seconda konsole. Come faccio?
Ho provato con

Codice: Seleziona tutto

echo "ciao mondo" | konsole
ma non va (si apre una konsole vuota).

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

tom
Packager
Packager
Messaggi: 407
Iscritto il: dom 1 nov 2009, 12:53
Nome Cognome: Tommaso D'Anna
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: xfce

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio da tom »

ciò di cui parli si ottiene con il comando

Codice: Seleziona tutto

konsole -e comando_da_lanciare
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

Codice: Seleziona tutto

konsole -e comando_da_lanciare
è 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

Avatar utente
freefred
Linux 0.x
Linux 0.x
Messaggi: 87
Iscritto il: dom 28 set 2008, 19:08
Slackware: 13.1
Kernel: 2.6.36.2
Desktop: kde 4.4.3
Contatta:

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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

Avatar utente
neongen
Packager
Packager
Messaggi: 827
Iscritto il: ven 25 mag 2007, 12:37
Nome Cognome: Enrico
Slackware: 14.0_64
Kernel: 3.4.4
Desktop: KDE 4.5.5
Distribuzione: Maemo 5
Contatta:

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio da neongen »

echo "pippo" 1> /proc/<pid della console>/fd/1

ma non ho capito se è quello che ti serve

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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

Codice: Seleziona tutto

konsole -e comando_da_lanciare
è 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"

Avatar utente
robbybby
Linux 4.x
Linux 4.x
Messaggi: 1223
Iscritto il: sab 16 dic 2006, 10:48
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5
Località: Fra Trantor e Terminus

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio da robbybby »

neongen ha scritto:echo "pippo" 1> /proc/<pid della console>/fd/1
Mi avete incuriosito, e ho provato. Non è:

Codice: Seleziona tutto

echo "pippo" 1> /proc/<pid della console>/fd/1
ma è:

Codice: Seleziona tutto

echo "pippo" 1> /proc/<pid della console>/fd/11
1 è il link a /dev/ttyx, mentre 11 è il link a /dev/pts/x

tom
Packager
Packager
Messaggi: 407
Iscritto il: dom 1 nov 2009, 12:53
Nome Cognome: Tommaso D'Anna
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: xfce

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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.
Ultima modifica di tom il sab 13 nov 2010, 19:44, modificato 1 volta in totale.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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

Codice: Seleziona tutto

Terminal=True
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.

tom
Packager
Packager
Messaggi: 407
Iscritto il: dom 1 nov 2009, 12:53
Nome Cognome: Tommaso D'Anna
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: xfce

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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.

Avatar utente
neongen
Packager
Packager
Messaggi: 827
Iscritto il: ven 25 mag 2007, 12:37
Nome Cognome: Enrico
Slackware: 14.0_64
Kernel: 3.4.4
Desktop: KDE 4.5.5
Distribuzione: Maemo 5
Contatta:

Re: redirigere l'output di un comando alla konsole di kde?

Messaggio 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

Rispondi