Script shell en utilisant des conditions
Résolu
flipmode62
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'aimerai créer un script shell en utilisant des conditions mais ça ne marche pas :(
if [ var1 > "1200" ]; then
var1="<b><font color=#0c00ff>$var1</font></b>"
else
var1="<b><font color=#ce0000>$var1</font></b>"
fi
Merci pour votre aide
Flipmode
J'aimerai créer un script shell en utilisant des conditions mais ça ne marche pas :(
if [ var1 > "1200" ]; then
var1="<b><font color=#0c00ff>$var1</font></b>"
else
var1="<b><font color=#ce0000>$var1</font></b>"
fi
Merci pour votre aide
Flipmode
A voir également:
- Script shell en utilisant des conditions
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Mise en forme conditionnelle excel plusieurs conditions - Guide
4 réponses
Salut,
Change les délimiteurs de la commande de substitution.
Modifie :
Change les délimiteurs de la commande de substitution.
Modifie :
s/=.*/=$(echo $var1)/en :
s|=.*|=$(echo $var1)|;-))
Mon script est de la forme:
........................
if [ var1 < 1200 ]; then
var1="\"<b><font color=#0c00ff>$var1</font></b>\""
else
var1="\"<b><font color=#ce0000>$var1</font></b>\""
fi
......................
......................
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
......................
.....................
Quand j'execute mon script, j'ai l'erreur :
sed: -e expression #1, char 70: unknown option to `s'
Si j'affiche var1, j'obtiens:
echo $var1
<b><b><font color=#0c00ff> 8533</font></b>
Donc le probléme dans mon script est au niveau de:
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
C'est le meme problème que: http://www.commentcamarche.net/forum/affich 9693322 script pour ecrire dans un fichier texte
Mais je n'arrive pas à régler ce probléme
Merci
Flipmode
........................
if [ var1 < 1200 ]; then
var1="\"<b><font color=#0c00ff>$var1</font></b>\""
else
var1="\"<b><font color=#ce0000>$var1</font></b>\""
fi
......................
......................
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
......................
.....................
Quand j'execute mon script, j'ai l'erreur :
sed: -e expression #1, char 70: unknown option to `s'
Si j'affiche var1, j'obtiens:
echo $var1
<b><b><font color=#0c00ff> 8533</font></b>
Donc le probléme dans mon script est au niveau de:
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
C'est le meme problème que: http://www.commentcamarche.net/forum/affich 9693322 script pour ecrire dans un fichier texte
Mais je n'arrive pas à régler ce probléme
Merci
Flipmode
Ta condition ne marche pas non plus ;-((
if [ var1 < 1200 ]; then
var1="\"<b><font color=#0c00ff>$var1</font></b>\""
echo $var1
<b><b><font color=#0c00ff> 8533</font></b>
C'est à cause que la comparaison arithmétique se fait soit de cette façon :
soit (attention il ne faut pas d'espace entre les 2 crochets ouvrants, je le mets uniquement pour palier un bug dans la mise en forme des balises par le code interne de CCM) :
if [ var1 < 1200 ]; then
var1="\"<b><font color=#0c00ff>$var1</font></b>\""
echo $var1
<b><b><font color=#0c00ff> 8533</font></b>
C'est à cause que la comparaison arithmétique se fait soit de cette façon :
if [ "$var1" -lt "1200" ]; then...
soit (attention il ne faut pas d'espace entre les 2 crochets ouvrants, je le mets uniquement pour palier un bug dans la mise en forme des balises par le code interne de CCM) :
if [ [ $var1 < 1200 ]]; then...
Merci pour ta réponse
Mon test ne marchait pas :(
Il ne changeait pas la couleur de mon texte! Avec les doubles [] ça fonctionne bien :)
Et en mettant: s|=.*|=$(echo $var1)| à la place de s/=.*/=$(echo $var1)/ ça marche
Par contre quand je fais:echo $var1
<b><font color=#0c00ff> 8533</font></b>
Dans mon script j'utilise la commande:
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
Dans mon fichier, il met: label_text="<b><font color=#0c00ff> 8533</font></b>" alors que je voudrais qu'il mette label_text=<b><font color=#0c00ff> 8533</font></b> (sans les " ")
Comment je peux faire pour changer ça?
Merci
Flipmode
Mon test ne marchait pas :(
Il ne changeait pas la couleur de mon texte! Avec les doubles [] ça fonctionne bien :)
Et en mettant: s|=.*|=$(echo $var1)| à la place de s/=.*/=$(echo $var1)/ ça marche
Par contre quand je fais:echo $var1
<b><font color=#0c00ff> 8533</font></b>
Dans mon script j'utilise la commande:
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
Dans mon fichier, il met: label_text="<b><font color=#0c00ff> 8533</font></b>" alors que je voudrais qu'il mette label_text=<b><font color=#0c00ff> 8533</font></b> (sans les " ")
Comment je peux faire pour changer ça?
Merci
Flipmode
Merci :)
En mettant: s|=.*|=$(echo $var1)| à la place de s/=.*/=$(echo $var1)/ ça marche
Quand je fais:echo $var1
<b><font color=#0c00ff> 8533</font></b>
Mais dans mon fichier, quand j'utilise la commande:
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
Il met: label_text="<b><font color=#0c00ff> 8533</font></b>" alors que je voudrais qu'il mette label_text=<b><font color=#0c00ff> 8533</font></b> (sans les " ")
Comment je peux faire pour changer ça?
Merci
Flipmode
En mettant: s|=.*|=$(echo $var1)| à la place de s/=.*/=$(echo $var1)/ ça marche
Quand je fais:echo $var1
<b><font color=#0c00ff> 8533</font></b>
Mais dans mon fichier, quand j'utilise la commande:
sed -i.bak "/localhost/,/}/{
/^label_text/{s/=.*/=$(echo $var1)/}
}
Il met: label_text="<b><font color=#0c00ff> 8533</font></b>" alors que je voudrais qu'il mette label_text=<b><font color=#0c00ff> 8533</font></b> (sans les " ")
Comment je peux faire pour changer ça?
Merci
Flipmode