Differenze tra le versioni di "Rendere la console dell'IDE funzionale come un Terminale"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale. In modo particolare si potranno lanciare in tal modo dalla console medesima comandi '...')
 
 
(18 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale. In modo particolare si potranno lanciare in tal modo dalla console medesima comandi ''bash''.
+
E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale.
  
Per ottenere questo risultato è necessario lanciare da codice la ''shell'' mediante il comando ''Exec[]'' nel modo che segue:
+
Per ottenere questo risultato è necessario lanciare da codice la ''shell'' mediante l'istruzione "Exec[]" usando il comando ''bash'':
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
    Exec [System.Shell]
+
  Exec ["bash"]
 
   
 
   
  '''End'''
+
  End
 +
 
 +
 
 +
===Usare la Proprietà ".Shell" della Classe ''System''===
 +
Public Sub Button1_Click()
 +
 +
  Exec [System.Shell]
 +
 +
End
 +
Si potrà anche scegliere la "shell" da utilizzare, assegnandola alla Proprietà ".Shell".
 +
<BR>Esempio:
 +
System.Shell = System.Find("bash")
 +
 
 +
Per disattivare tale funzionalità, bisognerà gestirne il processo con ''Process'' e distruggerlo mediante il metodo ''.Kill'':
 +
Private pr As Process
 +
 +
 +
Public Sub Button1_Click()
 +
 +
<FONT color=gray>' ''Gestisce il processo, creato da "Exec", mediante una variabile di tipo "Process":''</font>
 +
  pr = Exec [System.Shell]
 +
 +
End
 +
 +
 +
Public Sub Button2_Click()
 +
 +
<FONT color=gray>' ''Distrugge il processo creato con "Exec":''</font>
 +
  <FONT color=B22222>pr.Kill</font>
 +
 +
End
 +
 
 +
 
 +
==Lanciare comandi e programmi dalla console dell'IDE di Gambas==
 +
In particolare si potranno lanciare in tal modo dalla console comandi ''bash'' e programmi in generale sia scrivendoli manualmente (proprio come in un Terminale), sia in alternativa - come nell'esempio che segue - via codice con l'uso di ''Process'':
 +
Private pr As Process
 +
 +
 +
Public Sub Form_Open()
 +
 +
  pr = Exec [System.Shell] For Write
 +
 +
End
 +
 +
 +
Public Sub Button1_Click()
 +
 +
  Print #pr, "whereis gambas"
 +
 +
  Print #pr, "gedit"
 +
 +
End
 +
 
 +
 
 +
Inoltre, via codice sarà anche possibile raccogliere i dati di risultato dalla console, ponendo sotto osservazione il processo della ''shell'', per gestirli altrove:
 +
Private pr As Process
 +
 +
 +
Public Sub Form_Open()
 +
 +
  pr = Exec [System.Shell] For Read Write As "processo"
 +
 +
End
 +
 +
 +
Public Sub Button1_Click()
 +
 +
  Print #pr, "whereis gambas"
 +
 +
End
 +
 +
 +
Public Sub processo_Read()
 +
 +
  Dim s As String
 +
 +
  Line Input #pr, s
 +
 
 +
  TextArea1.Text &= s & "\n"
 +
 
 +
End
 +
 
 +
 
 +
==Intercettare il testo scritto nella console dell'IDE di gambas==
 +
L'attribuzione delle funzionalità tipiche di un terminale alla console dell'IDE di Gambas consente inoltre di poter intercettare e gestire altrove quanto viene semplicemente scritto nella console medesima. Dopo aver scritto il testo nella console, l'utente dovrà <SPAN style="text-decoration:underline">premere per ogni riga di testo il tasto "Return" o il tasto "Invio"</span>:
 +
Private pr As Process
 +
Private fl As File
 +
 +
 +
Public Sub Form_Open()
 +
 +
  pr = Exec [System.Shell] For Write
 +
 +
<FONT color=gray>' ''Apre in lettura e sottopone in osservazione lo standard Output:''</font>
 +
  fl = Open "/dev/stdout" For Read Watch
 +
 +
End
 +
 +
 +
Public Sub File_Read()
 +
 +
  Dim s As String
 +
 
 +
  Line Input #fl, s
 +
 
 +
  TextArea1.Text &= s
 +
 
 +
  Print "Osservato: "; s
 +
 +
End
 +
 +
 +
Public Sub Button1_Click()
 +
 +
<FONT color=gray>' ''Per andare "a capo" nella TextArea:''</font>
 +
  TextArea1.Text &= Chr(10)
 +
 
 +
End

Versione attuale delle 08:30, 21 nov 2023

E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale.

Per ottenere questo risultato è necessario lanciare da codice la shell mediante l'istruzione "Exec[]" usando il comando bash:

Public Sub Button1_Click()

 Exec ["bash"]

End


Usare la Proprietà ".Shell" della Classe System

Public Sub Button1_Click()

 Exec [System.Shell]

End

Si potrà anche scegliere la "shell" da utilizzare, assegnandola alla Proprietà ".Shell".
Esempio:

System.Shell = System.Find("bash")

Per disattivare tale funzionalità, bisognerà gestirne il processo con Process e distruggerlo mediante il metodo .Kill:

Private pr As Process


Public Sub Button1_Click()

' Gestisce il processo, creato da "Exec", mediante una variabile di tipo "Process":
 pr = Exec [System.Shell]

End


Public Sub Button2_Click()

' Distrugge il processo creato con "Exec":
 pr.Kill

End


Lanciare comandi e programmi dalla console dell'IDE di Gambas

In particolare si potranno lanciare in tal modo dalla console comandi bash e programmi in generale sia scrivendoli manualmente (proprio come in un Terminale), sia in alternativa - come nell'esempio che segue - via codice con l'uso di Process:

Private pr As Process


Public Sub Form_Open()

 pr = Exec [System.Shell] For Write

End


Public Sub Button1_Click()

 Print #pr, "whereis gambas"

 Print #pr, "gedit"

End


Inoltre, via codice sarà anche possibile raccogliere i dati di risultato dalla console, ponendo sotto osservazione il processo della shell, per gestirli altrove:

Private pr As Process


Public Sub Form_Open()

 pr = Exec [System.Shell] For Read Write As "processo"

End


Public Sub Button1_Click()

 Print #pr, "whereis gambas"

End


Public Sub processo_Read()

 Dim s As String

 Line Input #pr, s
  
 TextArea1.Text &= s & "\n"
 
End


Intercettare il testo scritto nella console dell'IDE di gambas

L'attribuzione delle funzionalità tipiche di un terminale alla console dell'IDE di Gambas consente inoltre di poter intercettare e gestire altrove quanto viene semplicemente scritto nella console medesima. Dopo aver scritto il testo nella console, l'utente dovrà premere per ogni riga di testo il tasto "Return" o il tasto "Invio":

Private pr As Process
Private fl As File 


Public Sub Form_Open()

 pr = Exec [System.Shell] For Write

' Apre in lettura e sottopone in osservazione lo standard Output:
 fl = Open "/dev/stdout" For Read Watch

End


Public Sub File_Read()

 Dim s As String
 
 Line Input #fl, s
  
 TextArea1.Text &= s
 
 Print "Osservato: "; s

End


Public Sub Button1_Click()

' Per andare "a capo" nella TextArea:
 TextArea1.Text &= Chr(10)
 
End