Introduzione a Unix
Indietro | Capitolo 9 Programmazione di shell | Avanti

# 9.6 Here document

Un here document è una forma di quoting che permette alle variabili di shell di essere sostituite. È una forma speciale di redirezione che inizia con una linea contenente solamente <<`PAROLA` e finisce con una linea contenete solamente `PAROLA`. Nella shell Bourne si può impedire la sostituzione di shell effettuando un escape su `PAROLA`, mettendo un \ davanti a `PAROLA` sulla linea di redirezione, esempio <<\`PAROLA`, ma non sulla linea finale. Per avere lo stesso effetto con la shell C si mette il \ davanti a `PAROLA` in entrambi i posti.

Gli script che seguono illustrano questo meccanismo:

per la shell Bourne: | e per la shell C:

    #!/bin/sh                               #!/bin/csh -f
    fa=fa                                   set fa = fa
    non=""                                  set non = ""
    cat << EOF                              cat << EOF
    Questo here document                    Questo here document
    $non $fa                                $non $fa
    sostituzione di variabile               sostituzione di variabile
    EOF                                     EOF
    cat << \EOF                             cat << \EOF
    Questo here document                    Questo here document
    $non $fa                                $non $fa
    sostituzione di variabile               sostituzione di variabile
    EOF                                     \EOF

Entrambi gli output producono:

    Questo here document
    fa
    sostituzione di variabile
    Questo here document
    $non $fa
    sostituzione di variabile

Nella parte superiore dell'esempio le variabili di shell `$non` e `$fa` sono sostituite. Nella parte inferiore queste variabili vengono trattate come delle semplici stringhe di testo senza effettuare la sostituzione.

Indietro | Partenza | Avanti
Sostituzione di parametri | Risali | Input interattivo

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.