Raccogliere quanto mostrato nella finestra di un Terminale

Da Gambas-it.org - Wikipedia.
Versione del 2 ott 2012 alle 12:23 di Vuott (Discussione | contributi) (Nuova pagina: La questione è abbastanza complessa. Si tratta di capire come poter raccogliere (leggere) quanto viene mostrato all'interno di una finestra di un Terminale. E' il caso di precisare c...)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

La questione è abbastanza complessa. Si tratta di capire come poter raccogliere (leggere) quanto viene mostrato all'interno di una finestra di un Terminale.

E' il caso di precisare che è non si intende capire come intercettare, ma come raccogliere tutto ciò che è leggibile nel Terminale.

Facciamo un esempio pratico: si apra un Terminale, e si lanci per esempio il comando: ls.

La domanda è: come raccogliere con codice Gambas il risultato visibile nel Terminale di quel comando ?

Allo stato attuale delle conoscenze di chi scrive, bisognerà trovare un compromesso fra comandi Bash e funzioni Gambas.


Uso del comando "Script"

Faremo in modo da aprire una finestra di Terminale e lanciarvi all'interno il comando Script:

Public Sub Form_Open()

  Shell "gnome-terminal -e script"

End

Nella medesima cartella ove è posizionato l'eseguibile Gambas, sarà creato un file, chiamato: "[i]typescript[/i]". Si comincerà a scrivere e ad usare normalmente il termminale. Conclusa la scrittura, si dovrà lanciare in Terminale il comando Exit. Questa fase finale procederà a copiare all'interno del file "[i]typescript[/i]" quanto scritto e ritornato nel Terminale, aggiungendovi dei codici speciali, leggibili ed interpretabili da un Terminale. Quindi, tornando in Gambas, si potrà leggere agevolmente in un altro Terminale, quanto presente nel file "[i]typescript[/i]":

Public Sub Button1_Click()
  Desktop.OpenTerminal

' Attendiamo la creazione del file speciale "/dev/pts/1":
  Do
    Wait 0.01
  Loop Until Exist("/dev/pts/1")
 
 ' Leggiamo dal file "[i]typescript[/i]", ed indirizziamo il contenuto al nuovo Terminale appena aperto:
 Shell "cat typescript > /dev/pts/1"

End