Fonctions

Il est possible d'encapsuler de la logique dans les fonctions avec le mot clé function.

function translate() {
  local GIBBERISH=$(echo $1 | sed "s/[aeiou]/iggedu/g")
  echo $GIBBERISH
}


translate "Ceci est un test"
translate "Une autre valeur"

Dans l'exemple, on a crée une fonction qui s'appelle translate.

Cette fonction va prendre un paramètre (qu'on récupère via la variable $1, et remplacer toutes le voyelles par une phrase iggedu).

Le mot clé local précise que la variable GIBBERISH n'existera uniquement à l'intérieur de la fonction, et ne peut pas être utilisé en dehors de la fonction.

On retourne les valeurs d'une fonction sur le stdout, d'où le echo à la fin de la fonction.

En bas du script, on invoke la fonction comme n'importe quelle fonction : en citant son nom suivi par des paramètres.

Exercice

En utilisant un script shell, créez un outil qui, en utilisant une fonction, calcul Pythagore. Le script prend 2 numéros comme paramètres : disons x et y

Emettez sur le stdout, la longueur de l’hypoténuse si x et y sont les longueurs des 2 cotés d’un triangle droit

Astuce : regardez la commande bc pour vous aider

chevron-rightSolutionhashtag

La commande bc (bash calculator), permet de calculer les valeurs decimals et plus grandes que possibles par bash nativement. Elle fonction par interpreter une expression sur le stdin.

Mis à jour