Commandolijn, SHELL: Distributie en versie opvragen

Een commandolijnprogramma kan je vanuit Gambas uitvoeren met SHELL of EXEC.

bv:

EXEC [ "ls", "-lF"]

Vanaf er “wildcards” in komen, als een ‘*’ om een reeks niet op voorhand gedefinieerde files aan te duiden, moet je SHELL gebruiken.

bv:

SHELL "ls /etc/*release"

Je kan in de Gambas IDE in het console venster onderaan de resultaten zien.

Je kan de uitvoer naar een variabele binnen Gambas sturen door de lijn te eindigen met

TO sVariabele

Klein voorbeeldje:

Maak een nieuw project “Command line application”

plak in MMain:

' Gambas module file

PUBLIC sParameter AS String
PUBLIC sCommand AS String
PUBLIC sAnswer AS String

PUBLIC sLine1 AS String
PUBLIC sLine2 AS String


PUBLIC SUB Main()

  sCommand = "ls /etc/*release"
  
  SHELL sCommand TO sAnswer
  
  DEBUG "Answer was: >" & Trim$(sAnswer) & "<"
  
  sAnswer = Trim$(sAnswer)
  
  sCommand = "cat " & sAnswer
  
  SHELL sCommand TO sAnswer
  
  DEBUG "Answer was: >" & Trim$(sAnswer) & "<"
  
  sLine1 = Left$(sAnswer, String.InStr(sAnswer, gb.NewLine))
  
  DEBUG "sLine1 is: " & sLine1
  
END

Hier kan je code uittesten die je elders in een grotere applicatie inbouwt; sParameter en sLine2 dienden daarvoor.