Successivo: Getline variabile coprocesso, Precedente: Getline variabile pipe, Su: Getline [Contenuti][Indice]
getline
da un coprocessoLeggere dell’input in getline
da una pipe è un’operazione
unidirezionale.
Il comando avviato con ‘comando | getline’ invia dati
al programma awk
.
Occasionalmente, si potrebbe avere la necessità di inviare dei dati a un altro
programma che li elabori, per poi leggere il risultato che esso genera.
gawk
permette di avviare un coprocesso, col quale sono
possibili comunicazioni bidirezionali. Questo vien fatto con l’operatore
‘|&’.
Tipicamente, dapprima si inviano dati al coprocesso e poi si leggono
i risultati da esso prodotto, come mostrato di seguito:
print "some query" |& "db_server" "db_server" |& getline
esso invia una richiesta a db_server
e poi legge i risultati.
I valori di NR
e
FNR
non vengono cambiati,
perché non è cambiato il flusso principale.
In ogni caso, il record è diviso in campi
nel solito modo, cambiando così i valori di $0
, degli altri campi,
e di NF
e RT
.
I coprocessi sono una funzionalità avanzata. Vengono trattati qui solo perché
questa è la
sezione su getline
.
Vedi la sezione Comunicazioni bidirezionali con un altro processo,
dove i coprocessi vengono trattati più dettagliatamente.