11 Aralık 2015 Cuma

Shell Script Yazma

Merhaba arkadaşlar projemiz için bir test programı yazacağımızı söylemiştik. Ama öncesinde Shell Scriptin ne olduğuna bir göz atalım.  Shellscript  bir çeşit kabuk programlamadır. Herhangi bir derleyiciye ihtiyaç duymadan direk olarak işletim sisteminin kabuğuna kod yazıp çalıştırabiliyorsunuz. Bunun için hazırlanmış kabuklara özel betik dilleri var. Bende kendi kabuğumun türünü öğrenebilmek için terminale #echo $SHELL komutunu yazdım.Kabuğum bash türü bir  kabuk ve bu sebeple de bash script kullanacağım. Nano isimli metin editorünü açıyorum . Eğer sizde bu editör yoksa terminal penceresine sudo apt-get install nano yazarak bilgisayarınıza kurabilirsiniz. Ayrıca şu linkten kısayol kullanımlarını öğrenebilirsiniz. Kodlarımızı bu editörden yazıp düzenleyeceğiz. Gelelim kod kısmına. Kod 15 ile 35  arasında rastgele değerler oluşturacak ve mosquitto üzerinden publish edecek ve bu işlemi her 5 sn'de bir tekrarlayacak.
#!/bin/bash
echo "kac kere calışacagini yazın:"
read count
for((x=0;x<$count;x++))
do
random=$((RANDOM%21+15))
mosquitto_pub -h 192.168.1.10 -t 'topic' -m $random
echo $random
sleep 5s

done
şimdi kodları açıklayalım. editörümüzü açtıktan sonra yeni bir dosya açıp kaydedelim. bu dosyanın içine yukarıdaki kodları yazalım. #!/bin/bash bizim kabuğumuzun türü. ilk olarak bunu belirtiyoruz. Echo komutu ile terminal  ekranına yazdırma işlemi yapılıyor. Read komutu ile count adında bir değişkene, girilen değer atanıyor. For döngüsü ile girdiğimiz değer kadar işlem yaptırılıyor. 15 ile 35 arasında rastgele değer oluşturulup bu değer mosquitto üzerinden publish ediliyor. 15 ile 35 arası değer oluşturabilmek için 36’dan 15 çıkartılıp bulunan değer mod olarak yazılıyor ve 15 toplanıyor. Bu sayede 35 ve 15 dahil olmak üzere bu değerler arasında rastgele değerler oluşturulabiliyor. Bu şekilde yapılmasının sebebi dilin sytax'ının bu şekilde yapılmış olması.Gönderdiğimiz değer ekrana yazdırılıyor. Program 5 saniye bekletilip işlemler tekar ettiriliyor.terminal ekranından dosyanın bulunduğu yeri açıp ‘./dosyaadı’ dediğimizde program çaılşmaya başlayacak. Ancak burada bir erişim hatasıyla karşılaşabilirsiniz. Bildiğiniz üzere linux sistemlerde dosya izin konusu önemli bir yere sahiptir. dosyaya okuma izni vermeseniz dosyayı okuyamazsanız. Aynı durum yürütme ve yazma işlemleri içinde geçerlidir. Bu sebeple dosyamıza okuma yazma ve yürütme izinleri verelim. terminal ekranını açıp chmod 754 dosyaadı derseniz o dosyaya okuma yazma ve yürütme izni vermiş olursunuz. Peki neden 754 diyebilirsiniz. Aslında bu yöntem bir sistematiğe oturtulmuştur. Dosya erişimlerine belirli numaralandırma verilmiştir. Bu numaraları toplayarak istediğiniz türde erişim izni sağlayabilirsiniz. . Buna göre: 400, dosya sahibinin okumasını, 200, dosya sahibinin yazmasını, 100 ise dosya sahibinin çalıştırmasını, 40, dosyanın bulunduğu kullanıcı grubunun okumasını, 20, grubun yazmasını, 10 ise grubun dosyayı çalıştırmasını, 4, diğerlerinin okumasını, 2, diğerlerinin yazmasını ve 1 diğerlerinin çalışmasını ifade eder. Ayrıca bu link üzerinden dosya erişimleri hakkında detaylı bilgiye sahip olabilirsiniz. Programımızın ekran görüntülerini verelim.

                                                        Terminal ekranındaki görüntüsü.
                     Mosquitto üzerinden gönderdiğimiz değerlerin android ekranındaki görüntüsü

Hiç yorum yok:

Yorum Gönder