Reindirizzare output con la shell di ubuntu

di il
6 risposte

Reindirizzare output con la shell di ubuntu

Salve a tutti sono nuovo, e ho iniziato a programmare in c++ per via di un esame di programmazione del mio corso di laurea e da allora mi sono appassionato Volevo però fare una domanda agli utenti più esperti di me. Quello che vorrei fare è lanciare un programma scritto in c++ con la shell di Ubuntu e reindirizzare l'output in un file. La domanda é: come si fa?
Per concretezza faccio un esempio: poniamo che io abbia scritto il classico programma helloworld.cxx; apro il terminale e scrivo "g++ helloworld.cxx", poi "./a.out" e la shell mi stampa "Hello world!". Ecco, come devo fare per fare in modo che questa scritta mi vada in un file di testo? Io pensavo di usare cat, di solito per creare un file di testo ex-novo faccio cat > nomedelfile e poi scrivo quello che voglio. In pratica quello che vorrei fare è reindirizzare l'output in un file. Grazie in anticipo per le risposte (ah se il programma richiede che io inserisca un input, ad esempio la mia età e poi me la stampa, devo digitare cose diverse nella shell?)
Spero di essere stato chiaro, l'esposizione non è il mio forte!

6 Risposte

  • Re: Reindirizzare output con la shell di ubuntu

    Se ti interessa solo l'output del tuo programma basta che scrivi:
    $ ./a.out > output.txt
  • Re: Reindirizzare output con la shell di ubuntu

    Grazie mille della risposta, scusa se rispondo solo ora ma da allora non riuscivo più a entrare nel sito, nel frattempo mi sono impratichito un po' con lo IOstream
    Impratichendomi (non di tanto) mi è sorto un altro dubbio invece riguardo all'input.
    Dopo aver scritto un programma (sempre in c++) che, inserita la lunghezza del pendolo e il numero di misure che volevo avere (n) mi dava n misure pseudosperimentali di vari periodi del pendolo, e dopo averli rediretti in un output chessò, di nome "pendolo.dat", volevo usare queste misure per ricavarmi il valore di g usando la formula inversa del pendolo semplice. Fin qui tutto bene, ma quando lancio il programma dandogli come input il file "pendolo.dat" non mi fa inserire altro "a mano" cioè vorrei poter dirgli prima la lunghezza del pendolo e il numero di misure n, poi dargli come input i valori, ma non sono capace
  • Re: Reindirizzare output con la shell di ubuntu

    Se vuoi mantenere la funzionalità del tuo programma come filtro e fornire lunghezza pendolo e numero misure in input, puoi usare una pipe. Ad esempio, volendo inviare lunghezza pendolo = 3.87 e numero misure = 400, puoi dare il comando:
    
    echo 3.87 400 | cat - pendolo.dat | nome_tuo_programma_in_C++
    
  • Re: Reindirizzare output con la shell di ubuntu

    WOW sei un grande, grazie!
  • Re: Reindirizzare output con la shell di ubuntu

    Di nulla, figurati. Comunque, volendo, puoi anche non usare echo e immettere successivamente i valori, digitandoli dopo aver avviato la pipe, facendoli seguire da ^d per segnalare la fine dell'input. Il comando si ridurrebbe in pratica a
    
    cat - pendolo.dat | nome_tuo_programma_in_C++
    
  • Re: Reindirizzare output con la shell di ubuntu

    Ho capito, sì così è più semplice grazie
Devi accedere o registrarti per scrivere nel forum
6 risposte