Precedente: File vuoti, Su: Gestione File Dati [Contenuti][Indice]
Occasionalmente, potrebbe essere più opportuno che awk non elabori gli
assegnamenti di variabile presenti sulla riga di comando
(vedi la sezione Assegnare una variabile dalla riga di comando).
In particolare, se si ha un nome-file che contiene un carattere ‘=’,
awk tratta il nome-file come un assegnamento e non lo elabora.
Alcuni utenti hanno suggerito un’opzione aggiuntiva da riga di comando per
gawk per disabilitare gli assegnamenti dati sulla riga di comando.
Comunque, poche righe di codice di programmazione in un file di libreria
hanno lo stesso effetto:
# noassign.awk --- file di libreria per evitare la necessità
# di una speciale opzione per disabilitare gli assegnamenti da
# riga di comando
function disable_assigns(argc, argv, i)
{
for (i = 1; i < argc; i++)
if (argv[i] ~ /^[a-zA-Z_][a-zA-Z0-9_]*=.*/)
argv[i] = ("./" argv[i])
}
BEGIN {
if (Disabilita_variabili)
disable_assigns(ARGC, ARGV)
}
Il programma va poi eseguito in questo modo:
awk -v Disabilita_variabili=1 -f noassign.awk -f vostro_programma.awk *
La funzione esegue un ciclo che esamina ogni argomento. Antepone ‘./’ a qualsiasi argomento che abbia la forma di un assegnamento di variabile, trasformando così quell’argomento in un nome-file.
L’uso di Disabilita_variabili consente di disabilitare assegnamenti di
variabile dati sulla riga di comando al momento dell’invocazione,
assegnando alla variabile un valore vero.
Se non viene impostata la variabile è inizializzata a zero (cioè
falso), e gli argomenti sulla riga di comando
non vengono modificati.