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.
(Creata pagina con "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 ap...")
 
Riga 1: Riga 1:
 
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.  
 
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).
+
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
 
  Private fl As File
 
   
 
   
Riga 8: Riga 8:
 
    
 
    
 
   Dim pw As String
 
   Dim pw As String
 
+
   fl = Open "/dev/pts" &/ Dir("/dev/pts", "*")[0] For Write
+
<FONT Color=gray>' ''Il numero dell'indice della funzione "Dir()" deve comunque essere quello relativo al file-device "pts" del Terminale''</font>
 +
   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.")

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