Successivo: AWKLIBPATH (Variabile), Su: Variabili d'ambiente [Contenuti][Indice]
awk
in una lista di directory.Nella maggior parte delle implementazioni di awk
si deve indicare il
percorso completo di ogni file di programma, a meno che il file non
sia nella directory corrente. Con gawk
, invece, se la
variabile nome-file impostata con le opzioni -f o -i non
contiene un separatore di directory ‘/’, gawk
cerca un file con
quel nome in un elenco di directory (chiamato percorso di ricerca),
scorrendole una per una.
Il percorso di ricerca è una stringa di nomi di directory separati da due
punti13. gawk
prende
il percorso di ricerca dalla variabile d’ambiente AWKPATH
. Se questa
variabile non esiste, o se ha un come valore la stringa nulla,
gawk
usa un percorso di default (descritto tra poco).
La funzionalità del percorso di ricerca è particolarmente utile per costruire
librerie di funzioni di awk
. I file di libreria possono essere messi
in una directory standard inclusa nel percorso di ricerca
e richiamati sulla riga di comando con un
nome-file breve. Altrimenti, si dovrebbe scrivere l’intero nome-file per
ciascun file.
Usando l’opzione -i, o l’opzione -f, i programmi di
awk
scritti sulla riga di comando possono usare le funzionalità
contenute nei file di libreria di awk
(vedi la sezione Una libreria di funzioni awk
).
La ricerca del percorso non viene eseguita se gawk
è in modalità di
compatibilità, sia con l’opzione --traditional che con l’opzione
--posix.
Vedi la sezione Opzioni sulla riga di comando.
Se il file del codice sorgente non viene trovato con una prima ricerca, il percorso viene cercato di nuovo dopo aver aggiunto il suffisso ‘.awk’ al nome-file.
Il meccanismo di ricerca del percorso di gawk
è simile a quello
della shell.
(Si veda The Bourne-Again SHell manual.)
Un elemento nullo nel percorso indica la directory corrente.
(Un elemento nullo è indicato iniziando o terminando il percorso con un segno
di ‘:’ oppure mettendo due ‘:’ consecutivi [‘::’].)
NOTA: Per includere la directory corrente nel percorso di ricerca, si può aggiungere . come un elemento del percorso di ricerca, oppure inserire un elemento nullo.
Diverse passate versioni di
gawk
avrebbero effettuato anche una ricerca esplicita nella directory corrente, prima o dopo aver esaminato il percorso di ricerca. A partire dalla versione 4.1.2, questo non vale più; se si desidera una ricerca nella directory corrente, è necessario aggiungere . esplicitamente, oppure aggiungendo un elemento nullo al percorso di ricerca.
Il valore di default di AWKPATH
è
‘.:/usr/local/share/awk’.14
Poiché . è incluso all’inizio, gawk
cerca dapprima nella
directory corrente, e poi in /usr/local/share/awk.
In pratica, questo vuol dire che solo raramente ci sarà bisogno di cambiare
il valore di AWKPATH
.
Vedi la sezione File di inizializzazione della shell, per informazioni su funzioni che possono
essere di aiuto per gestire la variabile AWKPATH
.
gawk
memorizza il valore del percorso di ricerca in uso in
ENVIRON["AWKPATH"]
. Questo consente di aver accesso al valore del
percorso di ricerca in uso all’interno di un programma awk
.
Sebbene la variabile ENVIRON["AWKPATH"]
possa
essere cambiata anche all’interno di
un programma awk
, questo non modifica il comportamento del
programma in esecuzione. Questo comportamento ha una sua logica: la variabile
d’ambiente AWKPATH
è usata per trovare i file sorgenti del programma; una
volta che il programma è in esecuzione, tutti i file sono stati trovati,
e gawk
non ha più bisogno di usare AWKPATH
.
Punti e virgola in MS-Windows.
La versione di gawk
che state usando potrebbe usare una directory diversa; ciò dipende da come
gawk
è stato compilato e installato. La directory effettiva è il
valore di $(pkgdatadir)
generato quando è stato configurato
gawk
.
(Per ulteriori dettagli si veda il file INSTALL nella distribuzione
in formato sorgente, e anche Compilare gawk
per sistemi di tipo Unix.
Non è comunque il caso di preoccuparsi per questo.)
Successivo: AWKLIBPATH (Variabile), Su: Variabili d'ambiente [Contenuti][Indice]