Autore Topic: Aiuto per comando EXEC [RISOLTO]  (Letto 1262 volte)

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Aiuto per comando EXEC [RISOLTO]
« il: 10 Aprile 2010, 13:17:52 »
Ciao, dovrei replicare il seguente comando:
Codice: [Seleziona]
SHELL "lp5250d outputcommand='scs2ps | lpr -o media=A4' env.DEVNAME='PROVA' MYHOST"

con il comando EXEC. Ho provato alcune varianti ma senza ottenere nulla.
Ciao e grazie anticipatamente.
« Ultima modifica: 27 Aprile 2010, 19:15:52 da Berserker79 »

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Aiuto per comando EXEC
« Risposta #1 il: 10 Aprile 2010, 14:56:06 »
Con EXEC viene creato un processo interno .

Per esempio :

Codice: [Seleziona]
EXEC ["comando", "comando"] .....  

Al posto dei puntini devi inserire la parte utile a te con i seguenti comandi  :

WAIT
FOR se è specificato, allora l'input-output del comando viene rediretto cosicché il tuo programma possa intercettare :
WRITE se è specificato, puoi mandare dati allo standard input del comando usando l'oggetto process con istruzioni d'output comuni:
print, write ...
READ devi usare l'oggetto process con funzioni di stream e input/output per leggere lo standard output del processo .
INPUT
OUTPUT

AS per ricadere sull'evento NOME usato dall'oggetto process .

Quindi il codice , dovrebbe venire così :

Codice: [Seleziona]
EXEC [ "comando", "comando" ] WAIT/FOR/TO   WRITE/READ/INPUT/OUTPUT AS "NOME"

Se devi usare WAIT non devi scrivere nient'altro !!

Spero di esser stato chiaro , Ciao  :D
« Ultima modifica: 10 Aprile 2010, 15:20:41 da Will32 »

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Aiuto per comando EXEC
« Risposta #2 il: 11 Aprile 2010, 07:54:34 »
Ok, ma non riesco a capire come và scomposto il comando ("lp5250d outputcommand='scs2ps | lpr -o media=A4' env.DEVNAME='PROVA' MYHOST") per essere eseguito correttamente.
Il comando SHELL, esegue la stringa che gli viene passata.
Il comando EXEC vuole la stringa del comando, passata come un array.
Ciao.

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Aiuto per comando EXEC
« Risposta #3 il: 11 Aprile 2010, 10:46:04 »
Ho provato con il tuo comando come EXEC ma non mi funzionava neanche !!  ;D
Che cosa dovrebbe fare ??
« Ultima modifica: 11 Aprile 2010, 10:49:59 da Will32 »

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Aiuto per comando EXEC
« Risposta #4 il: 11 Aprile 2010, 12:06:31 »
A occhio manda alla stampare l'output del comando centrale.
Ma dandolo da terminale ti funziona?
Visita il mio sito personale: http://www.leonardomiliani.com

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Aiuto per comando EXEC
« Risposta #5 il: 11 Aprile 2010, 12:16:37 »
se vuole una stringa composta come array dovresti separare i vari comandi con delle virgole

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Aiuto per comando EXEC
« Risposta #6 il: 11 Aprile 2010, 15:15:30 »
Citazione
Ma dandolo da terminale ti funziona

No !  :P

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Aiuto per comando EXEC
« Risposta #7 il: 11 Aprile 2010, 15:20:30 »
Citazione
Citazione
Ma dandolo da terminale ti funziona

No !  Linguaccia
a te non funziona sicuramente visto che non avrai la sua stampante e il suo documento :)

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Aiuto per comando EXEC
« Risposta #8 il: 11 Aprile 2010, 15:34:04 »
Be... , hai ragione !!  ;)

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Aiuto per comando EXEC
« Risposta #9 il: 12 Aprile 2010, 14:16:04 »
A Berserker79 dovrebbe funzionare correttamente !!

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Aiuto per comando EXEC
« Risposta #10 il: 12 Aprile 2010, 19:37:14 »
Il comando, come l'ho scritto io, lanciato da gambas con il comando shell funziona.
Purtroppo il comando shell non va bene perchè dopo aver lanciato il programma, debbo anche gestire il processo che ne deriva.
Fra le cose che voglio fare con il processo, voglio poterlo chiudere a mio piacimento. Con il comando shell ho verificato che non si riesce a chiudere il processo avviato, mentre se lanciato da exec si.
Secondo me, la parte più rognosa è questa:
outputcommand='scs2ps | lpr -o media=A4'
Dato che è un parametro/opzione che ne contiene altre a sua volta.
Secondo me il comando andrebbe scritto così:
Codice: [Seleziona]
EXEC ["lp5250d", "outputcommand='scs2ps | lpr -o media=A4'", "env.DEVNAME='PROVA'", "MYHOST"]
Ma purtroppo non và.

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Aiuto per comando EXEC
« Risposta #11 il: 27 Aprile 2010, 19:14:43 »
Ho trovato l'inghippo. Per far funzionare il tutto, ho dovuto eliminare gli apici nella stringa del comando.
La sintassi corretta è quindi:
Codice: [Seleziona]
EXEC ["lp5250d", "outputcommand=scs2ps | lpr -o media=A4", "env.DEVNAME=PROVA", "MYHOST"]
Saluti a tutti.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Aiuto per comando EXEC
« Risposta #12 il: 27 Aprile 2010, 19:16:05 »
Se non hai più richieste a riguardo ricorda di inserire [RISOLTO] nel titolo del primo post....grazie.... ;)