#1 Le 14/12/2015, à 16:33
- Boombastick
[BASH] Vérificateur foireux
Salut les basheux !
Je code un script au début duquel je souhaiterais qu'il vérifie qu'il est exécuté sous Debian 8, sinon, il termine le script.
if [[ "$(cat /etc/debian_version)" -ne "8.*" ]]; then
clear
echo ""
echo -e "/!\ ERREUR: Ce script doit etre execute sous Debian 8 Jessie." 1>&2
echo ""
exit 1
fi
Mais il me ressort
./script.sh: ligne 24: [[: 8.2 : erreur de syntaxe : opérateur arithmétique non valable (le symbole erroné est ".2")
Hors ligne
#2 Le 14/12/2015, à 16:57
- Watael
Re : [BASH] Vérificateur foireux
salut,
le shell ne traite que les entiers.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 14/12/2015, à 17:08
- pingouinux
Re : [BASH] Vérificateur foireux
Bonjour,
Essaye
if [[ ! "$(cat /etc/debian_version)" =~ ^8.* ]]; then
Hors ligne
#4 Le 14/12/2015, à 18:13
- bruno
Re : [BASH] Vérificateur foireux
Bonjour,
-ne c'est pour comparer des entiers. Là tu veux comparer des chaînes de caractères, il faut utiliser = ou !=
if [[ "$(cat /etc/debian_version)" != 8.* ]]
La condition est vrai si le contenu de /etc/debian_version ne commence pas par 8.
#5 Le 16/12/2015, à 10:13
- Boombastick
Re : [BASH] Vérificateur foireux
Merci les gars ! Les deux marches mais je vais plutôt prendre la solution de bruno qui m'as l'air plus simplifiée.
Dernière modification par Boombastick (Le 16/12/2015, à 10:13)
Hors ligne