|
|
(20 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | La questione è abbastanza complessa. Si tratta di capire come poter raccogliere (leggere) quanto viene mostrato all'interno di una finestra di un Terminale.
| + | #REDIRECT [[Intercettare_quanto_viene_scritto_manualmente_nella_console_o_in_un_Terminale]] |
− | | |
− | E' il caso di precisare che è <SPAN style="text-decoration:underline">non</span> 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 <FONT color=#B22222>script</font>"
| |
− |
| |
− | '''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 chiuderà il Terminale, e procederà a copiare all'interno del file "[i]typescript[/i]" quanto scritto e ritornato nel predetto Terminale, aggiungendovi dei codici speciali, leggibili ed interpretabili solo da un Terminale.
| |
− | Quindi, tornando in Gambas, si potrà leggere agevolmente in un nuovo Terminale, quanto presente nel file "[i]typescript[/i]":
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Desktop.OpenTerminal
| |
− |
| |
− | <FONT color=#006400>' ''Attendiamo la creazione del file speciale "/dev/pts/1":''</font>
| |
− | Do
| |
− | Wait 0.01
| |
− | Loop Until Exist("/dev/pts/1")
| |
− |
| |
− | <FONT color=#006400>' ''Leggiamo dal file "[i]typescript[/i]", ed indirizziamo il contenuto al nuovo Terminale appena aperto:''</font>
| |
− | Shell "cat typescript > /dev/pts/1"
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | | |
− | ==Uso del comando "''xterm -l''"==
| |
− | Per usare qeusta modalità, bisognerà aver installato nel proprio sistema il Terminale "''xterm''".
| |
− | | |
− | Si dovrà lanciare il comando ''xterm -l'':
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Shell "<FONT color=#B22222>xterm -l</font>"
| |
− |
| |
− | '''End'''
| |
− | si aprirà quindi il Terminale "''xterm''". Verrà creato solitamente nella propria ''Home'' un file, il cui nome inizia con: ''Xterm.log.'' . Si potrà quindi scrivere ed utilizzare regolarmente il Terminale "''xterm''".
| |
− | | |
− | Successivamente, per rivedere quanto scritto ed ottenuto nel terminale, si dovrà andare a leggere il contenuto del predetto presente nella ''Home''.
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Desktop.OpenTerminal
| |
− |
| |
− | <FONT color=#006400>' ''Attendiamo la creazione del file speciale "/dev/pts/1":''</font>
| |
− | Do
| |
− | Wait 0.01
| |
− | Loop Until Exist("/dev/pts/1")
| |
− |
| |
− | <FONT color=#006400>' ''Leggiamo dal file "[i]typescript[/i]", ed indirizziamo il contenuto al nuovo Terminale appena aperto:''</font>
| |
− | Shell "cat /percorso_del_file/Xterm.log.* > /dev/pts/1"
| |
− |
| |
− | '''End'''
| |