sh
Komut 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 $StartIP
ve $OldIP
aynı 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, $OldIP
hiçbir şey atanmayacak (başlatılmadı). Ancak, $OldIP
yoksa, bu benim kabuğumda aynı olmadığı anlamına gelir!
Satır yapmak istemiyorum: eğer $OldIP
yoksa -> farklı ise test -> çalıştır echo OK
.
Satırın şu anlama gelmesini istiyorum: a) $OldIP
yoksa -> son. artı b) $OldIP
varsa -> 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