Explication script structure case (unix)

Fermé
bertho73 Messages postés 1 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 1 octobre 2008 - 1 oct. 2008 à 19:31
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 1 oct. 2008 à 19:53
Bonjour,

Dans mon cours sur Unix, j'ai un exemple de script utilisant la structure case et permettant de déterminer le type de noyau installé sur la machine :

#!/bin/bash
i=${uname -r)
i=${1:-$i}
case '$i" in
2.6.* | 2.7.* ) type="2.6" ;;
2.4.* | 2.5.* ) type="2.4" ;;
2.2.* | 2.3.* ) type="2.2" ;;
*) type="inconnu" ;;
esac
echo Votre noyau est de type ${type}

seulement je ne comprends pas à quoi sert la ligne i=${1:-$i}.

Pouvez-vous m'expliquer merci par avance

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
1 oct. 2008 à 19:53
Salut,

Cette ligne sert à vérifier si un paramètre ($1) aurait été passé au script, auquel cas la valeur de ce paramètre serait affectée à la variable "$i", dans le cas contraire la variable prend alors la valeur de la commande "uname -r".

Voir dans la FAQ : Le remplacement de variables en shell Bash

;-))
1