shKomut dosyası sözdizimi ile ilgili bir sorunum var . Asus yönlendiricim için bir senaryo yazdım. Senaryo mükemmel çalışıyor. Ama bu çizgiye sahibim:
if [[ "$OldIP" && "$StartIP" != "$OldIP" ]]; then echo OK; fi
Gerçek olamayacak (ve yürütmek gerekir echo OK) sadece $StartIPve $OldIPaynı değildir. Çizgi çalışır, ancak daha verimli yapıldığını görmek isterim. Değişkenler geçerli IP adresleri içerir.
Bazı durumlarda, $OldIPhiçbir şey atanmayacak (başlatılmadı). Ancak, $OldIPyoksa, bu benim kabuğumda aynı olmadığı anlamına gelir!
Satır yapmak istemiyorum: eğer $OldIPyoksa -> farklı ise test -> çalıştır echo OK.
Satırın şu anlama gelmesini istiyorum: a) $OldIPyoksa -> son. artı b) $OldIPvarsa -> farklı olup olmadıklarını test edin -> çalıştırın echo OK.
Bu yüzden, "$OLDIP" &&mümkünse bir şekilde kaldırmak istiyorum. Gerçek bir sorun değil; öğrenmek meraklı :)
Sıralama (ancak çalışmıyor):
if [ [ "$OldIP" ] != "$StartIP" ]; then echo OK; fi
veya
if [ $OldIP != "$StartIP" ]; then echo OK; fi
istediğimi yapar, ancak OldIP boşaldığında şikayet eder (ama iyi çalışır)
süre
if [ "$OldIP" != "$StartIP" ]; then echo OK; fi
çalışır ancak OldIP'nin boş olduğunu gözardı eder