SHELL
[ Process = ] SHELL Komandë [ WAIT ] [ FOR { { READ | INPUT } | { WRITE | OUTPUT } } ] [ AS Emër ]
SHELL Komandë TO Ndryshore
Ekzekuton komandë. Për të menaxhuar komandën krijohet
Process Objekti i brendshëm.
Komanada është një varg e cila përmban komandë që përcillet deri te shell systemi (
/bin/sh).
- Nëse është specifikuar WAIT, atëherë iterpretuesi pret deri në përfundimin e komandës. Përndryshe komanda ekzekutohet në sfond.
- Nëse është specifikuar FOR, atëherë hyrjet/daljet e komandës ridrejtohen ashtuqë pragrami mund t'i kap ato:
Nëse përdorni fjalët çelës
INPUT dhe
OUTPUT në vend të
READ dhe
WRITE, atëherë procesi ekzekutohet në brendësi të terminalit
Virtulaltiteti. Kjo do të thotë se procesi mendon se ekzekutohet në një terminal të vërtetë.
Emri është emri i
Ngjarje që përdoret nga
Process i
Objekti. Sipas përzgjedhjes, është
"Process".
Në
Gambas 3, nuk ka më emër ngjarje të përzgjedhur.
Me fjalë të tjera, duhet të shtoni
që të fitoni sjelljen e njëjtë si në Gambas 2.
Referencë deri te
Process i brendshëm i
Objekti mund të krijohet duke përdorur ndarje.
Nëse e përdorni sintaksë e dytë, atëherë komanda ekzekutohet, interpretuesi pret që ajo të mbarojë dhe e gjithë dalja nga komanda vendoset në vargun e specifikuar.
Example
' Gjej përmbajtjen e direktoriumit
SHELL "ls -la /tmp" WAIT
' E njëjta gjë, por në sfond
DIM Content AS String
SHELL "ls -la /tmp" FOR READ
...
PUBLIC SUB Process_Read()
DIM sLine AS String
READ #LAST, sLine, -256
Content = Content & sLine
PRINT sLine;
END
 |
Meqënëse argumentet dërgohen deri te shell, duhet ti vendosni në thonjëza, sikurse që shkruani komandë direkt në të.
SHELL "perl -e 'print while <>;'" FOR READ WRITE
Mund të përdorni Metoda Quote.Shell që të krijoni varg të thonjëzuar që nuk mund të ndryshohet nga shell.
|
 |
Për dallim nga Shell-i komandues i Visual Basic, i cili then ID të procesit dhe mbështetet në programerin që të bëj thirrje API për kontrollimin e procesit, Funksioni Shell i Gambas opsionalisht kthen Objekti Process (nëse përdoret si ndarje të një Ndryshore e deklaruar si AS Process) e cila mund të përdoret për shkatërrim direkt ose lloj tjetër kontrollimi të procesit aktiv. Përvec kësaj, procesi mund të ekzekutohet në mënyrë sinkrone ose asinkrone, për dallim nga ekuivalenti Visual Basic.
|