J'ai un problème avec la shsyntaxe 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 $StartIPet $OldIPne 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, $OldIPrien ne sera attribué (n'est pas initialisé). Mais, si $OldIPn'existe pas, cela signifie qu'ils ne sont pas les mêmes dans ma coquille!
Je ne veux pas que la ligne à faire: si $OldIPn'existe pas -> tester si elles sont différentes -> exécuter echo OK.
Je veux que la ligne signifie: a) si $OldIPn'existe pas -> fin. plus b) s'il $OldIPexiste -> 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