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.
Riga 12: Riga 12:
 
   fl = Open "/dev/pts" &/ Dir("/dev/pts", "*", gb.Device)[<FONT COLOR=#b22222>0</FONT>] For Write
 
   fl = Open "/dev/pts" &/ Dir("/dev/pts", "*", gb.Device)[<FONT COLOR=#b22222>0</FONT>] For Write
 
    
 
    
   pw = InputBox("Immettere la propria password.")
+
   pw = InputBox("Immettere la propria password:")
 
   
 
   
 
   Shell "echo " & pw & " | sudo -S fdisk -l" For Read As "processus"
 
   Shell "echo " & pw & " | sudo -S fdisk -l" For Read As "processus"

Versione delle 22:14, 14 dic 2021

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