Raccogliere quanto mostrato nella finestra di un Terminale
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