Differenze tra le versioni di "Lanciare da un'applicazione Gambas un comando bash e far scrivere il risultato in un Terminale"
Da Gambas-it.org - Wikipedia.
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 5: | Riga 5: | ||
− | + | Public Sub Button1_Click() | |
Dim pw As String | Dim pw As String | ||
Riga 16: | Riga 16: | ||
Shell "echo " & pw & " | sudo -S fdisk -l" For Read As "processus" | Shell "echo " & pw & " | sudo -S fdisk -l" For Read As "processus" | ||
− | + | End | |
− | + | Public Sub processus_Read() | |
Dim s As String | Dim s As String | ||
Riga 27: | Riga 27: | ||
Print #fl, s | Print #fl, s | ||
− | + | End |
Versione attuale delle 09:01, 1 lug 2024
Se si intende lanciare con "Shell" un comando bash e far scrivere il suo risultato in un Terminale, si potrà porre sotto osservazione il Processo generato da "Shell" e aprire in scrittura il file speciale "/dev/pts" relativo al Terminale ed inviarvi i dati stringa intercettati dal Processo.
Mostriamo un esempio (si lanci prima il codice sottostante e subito dopo si apra un Terminale. Quindi si prema il Button, posto sul Form per ottenere il risultato).
Private fl As File Public Sub Button1_Click() Dim pw As String ' Il numero dell'indice della funzione "Dir()" deve comunque essere quello relativo al file-device "pts" del Terminale fl = Open "/dev/pts" &/ Dir("/dev/pts", "*", gb.Device)[0] For Write pw = InputBox("Immettere la propria password:") Shell "echo " & pw & " | sudo -S fdisk -l" For Read As "processus" End Public Sub processus_Read() Dim s As String Line Input #Last, s Print #fl, s End