Home > lang > exec 
 en fr de es nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Precedente  Successivo  Modifica  Rinomina  Undo  Refresh  Search  Amministrazione  
Documentazione
History
 
Attenzione! Questa pagina non è aggiornata.  Vedi versione in inglese 
EXEC
[ Processo = ] EXEC Comando [ WAIT ] [ FOR { { READ | INPUT } | { WRITE | OUTPUT } } ] [ AS Nome ]
EXEC Comando TO Variabile

Esegue un comando. Per gestire il comando viene creato un oggetto Process interno.

Il comando deve essere specificato come un array di stringhe contenente almeno un elemento. Il primo elemento di questo array è il nome del comando, gli altri sono parametri opzionali.

Se utilizzi le parole chiave INPUT e OUTPUT invece di READ e WRITE, allora il processo viene eseguito in un terminale virtuale. Questo significa che il processo penserà di essere eseguito dentro un vero terminale.

Nome è il nome dell'evento usato dall'oggetto Process. Per default, è "Process".

Puoi avere un riferimento all'oggetto Process interno creato usando un assegnamento.

Se usi la seconda forma, il comando viene eseguito, l'interprete attende la sua fine, e l'output completo del comando viene messo nella stringa specificata.

Esempio

' Ottieni il contenuto della directory
EXEC [ "ls", "-la", "/tmp" ] WAIT

' Metti il contenuto della directory nella stringa
DIM sOutput AS String
EXEC [ "ls", "-la", "/tmp" ] TO sOutput

' Metti il contenuto della directory nella stringa, ma in background

DIM sOutput AS String

' Viene usato un nome di evento specifico
EXEC [ "ls", "-la", "/tmp" ] FOR READ AS "Contenuto"

...

PUBLIC SUB Contenuto_Read()

  DIM sLinea AS String

  READ #LAST, sLinea, -256

  sOutput &= sLinea

END

PUBLIC SUB Contenuto_Kill()

  PRINT sOutput

END

Se vuoi sapere quanti bytes puoi leggere in un gestore di eventi Process_Read, usa la funzione Lof.

Dato che gli argomenti vengono mandati direttamente al processo, non hai bisogno di racchiuderli tra virgolette, come dovresti fare in una shell.

' perl -e 'print while <>;' diventa

EXEC [ "perl", "-e", "print while <>;" ] FOR READ WRITE

Vedi anche

Gestione dei Processi, Process, Lof