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.