Problema eseguendo un comando linux

Discussione in 'PHP' iniziata da Sante Caserio, 26 Settembre 2008.

  1. Sante Caserio

    Sante Caserio Nuovo Utente

    Registrato:
    26 Settembre 2008
    Messaggi:
    2
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Ho uno script php che funziona da riga di comando che, in alcuni casi, emette un bip. Per fare questo utilizza il comando unix beep:

    system('beep ...parametri');

    Nel caso in cui beep non sia presente nel sistema (perchè si utilizza un sistema non di tipo Unix, oppure semplicemente il pacchetto non è installato) il programma genere il bip scrivendo il carattere ascii 7 (BEL):

    if (system('beep ...parametri')===false)
    echo (chr(7));

    Il problema è che in questo caso nella shell compare anche il simpatico messaggio: "sh: beep: not found". Vorrei evitare questa cosa, molto brutta dal punto di vista dell'utente. Come posso fare secondo voi??

    NB: chiaramente in questo caso non serve a nulla una soluzione tipo @system('beep ...parametri'), perchè a livello di PHP non si verifica nessun errore, l'errore è casomai a livello di sistema.
    NB2: Ho già provato a vedere se il comportamento cambia utilizzando exec() o passthru() o `beep`, ma non cambia nulla.
     
  2. Trogo

    Trogo Utente Attivo

    Registrato:
    11 Gennaio 2008
    Messaggi:
    370
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    sistemista programmatore
    Località:
    Sanremo
    Hai provato a redirezionare lo standard error su null?

    Linux: beep 2> /dev/null
    DOS: beep 2> nul
     
  3. Sante Caserio

    Sante Caserio Nuovo Utente

    Registrato:
    26 Settembre 2008
    Messaggi:
    2
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    L'ho risolto utilizzando l'operatore `comando`, che esegue "comando". In questo modo, l'errore non viene mostrato su consolle.

    Non avevo pensato di ridirezionare lo standard output perchè ero convinto che su DOS non si potesse fare. Grazie per questa informazione, sicuramente mi sarà utilissima più avanti.
     
Sto caricando...

Condividi questa Pagina