J'ai un problème avec la sh
syntaxe du script. J'ai écrit un script pour mon routeur Asus. Le script fonctionne parfaitement. Mais j'ai cette ligne:
if [[ "$OldIP" && "$StartIP" != "$OldIP" ]]; then echo OK; fi
Cela ne devrait être vrai (et exécuter echo OK
) que si $StartIP
et $OldIP
ne sont pas identiques. La ligne fonctionne, mais j'aimerais que cela se fasse plus efficacement. Les variables contiennent des adresses IP valides.
Dans certains cas, $OldIP
rien ne sera attribué (n'est pas initialisé). Mais, si $OldIP
n'existe pas, cela signifie qu'ils ne sont pas les mêmes dans ma coquille!
Je ne veux pas que la ligne à faire: si $OldIP
n'existe pas -> tester si elles sont différentes -> exécuter echo OK
.
Je veux que la ligne signifie: a) si $OldIP
n'existe pas -> fin. plus b) s'il $OldIP
existe -> teste si elles sont différentes -> exécutez echo OK
.
Donc, je voudrais supprimer en "$OLDIP" &&
quelque sorte, si possible. Pas un vrai problème curieux d'apprendre :)
En quelque sorte (mais ça ne marche pas):
if [ [ "$OldIP" ] != "$StartIP" ]; then echo OK; fi
ou
if [ $OldIP != "$StartIP" ]; then echo OK; fi
qui fait ce que je veux, mais se plaint quand OldIP est vide (mais fonctionne bien)
tandis que
if [ "$OldIP" != "$StartIP" ]; then echo OK; fi
fonctionne mais ignore que OldIP est vide