Mikrotik betik programcılığı – Değişkenler January 20th, 2009
Mikrotik betik dili üzerinde iki tip değişken bulunmaktadır.
- global – Tüm aktif kullanıcılar ve betikler tarafından erişilebilen değişken tipidir. global deyimi ile tanımlanır.
- local – Sadece tanımlandığı blok içerisinden erişilebilen değişken tipidir, yine local deyimi ile tanımlanır.
[sourcecode language="bash"]
[admin@Mikrotik] > :local testDegiskeni; :set testDegiskeni “Test ediyoruz”; :put $testDegiskeni
[/sourcecode]
Aynı kod bloğu içerisinde öncelikle local bir testDegiskeni adında bir değişken oluşturduk, değerini Test ediyoruz olarak atadık, daha sonrada değişkenimizin değerini ekrana bastırdık.
Peki bu değişkeni daha birden fazla satırı ve/veya kod bloğu olan bir betik içerisinde kullanma ihtiyacımız olsa idi?
[sourcecode language="bash"]
[admin@Mikrotik] > :global testDegiskeni
[admin@Mikrotik] > :set testDegiskeni “Mikrotik dunyasina hosgeldin\n”
[admin@Mikrotik] > :for i from=1 to=3 do={:put $testDegiskeni}
[/sourcecode]
Bu örnekte de görülebileceği gibi testDegiskeni adında bir global değişken tanımladık ve daha sonraki kod bloklarımızdan değişkenimize ulaşarak gerekli işlemleri yaptık.
Mikrotik üzerinde betik programcılığı January 20th, 2009
Mikrotik bildiğiniz üzre kolay kullanımı için güzel bir görsel kullanıcı arayüzüne sahiptir. Bu arayüz sayesinde çok kolay ayarlanabilen, takip edilebilen, kullanıcı dostu bir işletim sistmidir.
Bu kadar kolaylık arasında ya kendimize/duruma özel işlemler yapmak istersek? Ya aynı işlemi defalarca yapmak zorunda isek? Ya da bir işlemi sayısız kere belirli aralıklarla yapmak zorunda isek?
Bu kadar esnek bir sistem tabi ki de buna da imkan tanıyacaktır. Mikrotik güçlü kabuğu sayesinde tüm işlerinizi otomatik hale getirmenize ya da durumlara özel çareler üretmenize yardımcı olacaktır. Kabuk üzerinden (Telnet/SSH/Winbox/Serial) işinize uygun bir betik yazarak dilediğiniz gibi tüm işlemlerinizi gerçekleştirebilirsiniz.
Genel anlamda kullanacağımız kabuk *nix üzerinde yer alan kabuklardan pek te farklı değildir. Bash ya da sh’ta kullanmış olduğumuz “\”, “;” ,”#”,”{}”,”[]“ sınırlayıcılar pek fark olmadan yine bu kabuk üzerinde kullanılabilir.
Veri tipleri
Betik yazımı sırasında sık sık kullanacağımız değişkenler için önceden belirlenmiş tipler mevcuttur. Bunlar;
- number – 64 bitlik Integer tipi değişken türü (işaretli +/-), aynı zamanda hexadecimal veri girişi de mümkündür.
- boolean – doğru/yanlış veri tipi, true ya da false değerlerini alabilmektedir.
- string – karakter dizisidir. “test verisi” gibi bir değer alabilir.
- IP – IP adresi barındırabilen veri tipidir.
- time – tarih ve zaman tutan veri tipidir.
- array – dizi verileri tutabilen veri tipidir.
- nil – öntanımlı veri tipidir, değişken değer verilmediği sürece değeri nil’dir.
Ayrımlama işaretleri
- \” - çift tırnak
- \\ – ters bölü
- \n – yeni satır
- \r – satır başı
- \t – yatay sekme
- \$
- \?
- \_ – boşluk
- \a – zil
- \b – gerisilme
- \f – sayfa ileri
- \v – yatay sekme
- \xx – onaltılık düzende değer
Operatörler
Aritmetiksel Operatörler
- + toplama
- - çıkarna
- / bölme
- * çarpma
- - negatif
Karşılaştırma Operatörleri
- < küçükse
- > büyükse
- <= küçük ve eşitse
- >= büyük ve eşitse
- = eşitse
- != eşit değilse
Mantıksal Operatörler
- “!” / “not” değilse
- “&&” / “and” ve
- “||” / “or” veya
Bitsel Operatörler
Bitsel operatörler yanlızca number ve IP veritiplerindeki değişkenler/değerler için kullanılabilmektedir.
- “~” değil, bitin tersini alma
- “&” ve (1 ve işleminde etkisiz, 0 biti ise yutan elemandır)
- “|” veya (0 ve işleminde etkisiz, 1 biti ise yutan elemandır)
- “^” özel veya (aynı bitler için 0, farklı bitler için 1 elde eder)
- “<<” sola kaydırma (belirtilen değer kadar bitleri sola kaydırır)
- “>>” sağa kaydırma (belirtilen değer kadar bitleri sağa kaydırır)
Birleştirme operatörleri
- “.” İki karakter dizisini birbirine bağlar.
- “,” Dizi elemanlarını birbiri ardına sıralar/Diziye yeni değer ekler.



