Fonctions utilisateur

Les fonctions personnelles peuvent être définies dans le script awk, en dehors des blocs d'instructions, ou dans un autre script qui sera également appelé par l'option -f <script>.

Une fonction se définit par le mot clé function suivi du nom de la fonction et de ses paramètres. Une fonction peut recevoir de 0 à n arguments et retourner une valeur explicite.

Syntaxe

function nom_fonction (param1, param2, ..., paramn) {
     instructions
     return valeur
}

Tous les paramètres de la fonction sont des variables locales. Toute autre variable définie dans la fonction est globale.

Appel d'une fonction

valeur=nom_fonction(val1, val2, ..., valn)

Il ne doit pas y avoir d'espace entre le nom de la fonction et la parenthèse ouvrante.

Exemple

$ nl script14.awk
     1  function modulo(nb){
     2          mod=nb%2
     3          if(mod==0){
     4                  chaine=sprintf("%d est un nombre pair" , nb)
     5          }
     6          else{
     7                  chaine=sprintf("%d est un nombre impair" , nb)
     8          }
     9          return chaine
    10  }
    11  {
    12          for(i=1;i<=NF;i++){
    13                  print modulo($i)
    14          }
    15  }
$ echo "20 21 23 56 43 2.4 rr" | awk -f script14.awk
20 est un nombre pair
21 est un nombre impair
23 est un nombre impair
56 est un nombre pair
43 est un nombre impair
2 est un nombre impair
0 est un nombre pair
$

Etiquettes: 

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.