Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Il est question de script awk/gawk utilisant un shebang approprié.
Avec le shebang #!/bin/awk -f
les options passées sur la ligne de commande appelant le script sont traitées comme des options pour awk
.
Ainsi avec un script du genre :
#!/bin/awk -f BEGIN { for (i=0; i<ARGC; i++) printf("Argument %d : %s\n", i, ARGV[i]) if (var) printf("La variable vaut %s\n",var) }
Et en l'appelant comme ceci :
./script_awk -v var="VAR"
Le retour donne
Argument 0 : gawk La variable vaut VAR
L'option -v
a été traitée par awk
, on ne la voit pas apparaître dans le tableau des arguments.
Ok, ça peut-être pratique.
On peut passer des variables à un programme awk
, changer le comportement d'un script …
Mais si mon script awk
a ses propres options, il risque d'y avoir des “interférences” avec les options d' awk
.
Pour cela, il existe une option d' awk
qui permet de ne plus considérer les options de la ligne de commande tout en exécutant le “fichier programme”.
C'est un peu comme -f
sauf que je vais devoir traiter la ligne de commande dans mon script awk
.
Cette option est -E
et le shebang devient : #!/bin/awk -E
Et donc avec le même script, on n'obtient pas le même retour :
#!/bin/awk -E BEGIN { for (i=0; i<ARGC; i++) printf("Argument %d : %s\n", i, ARGV[i]) if (var) printf("La variable vaut %s\n",var) }
L'appel :
./script_awk -v var="VAR"
Le retour :
Argument 0 : gawk Argument 1 : -v Argument 2 : var=VAR
L'option -v
n'a pas été prise en compte par awk
.
Je peux donc la traiter dans mon script awk
ainsi que son argument.
Il existe une fonction getopt
pour gérer cela
Ça laisse toute liberté sur le choix et la gestion des options/arguments de la ligne de commande appelant le script awk
.
Une autre solution consiste à utiliser l'indicateur de fin d'options –
(2 tirets).
Ainsi en gardant le shebang habituel avec -f
, il est possible de passer des options et à awk
et au script.
Un truc du genre :
./script_awk options_awk_ici -- options_script_ici arguments …
Vli, vlà, vlou pour la petite astuce