Shell Scripts Programlama - 1

merlins

Üye
24 Mar 2019
172
0
Shell Scripts-1​

Merhaba bu konuda sizin için Shell Scripts nasıl programlamayı ele alıp sizlere örnekler ile anlatmaya çalışacağım. Haydi başlayalım;
ilk olarak linux işletim sistemi üstünden anlatacağım. Başlamak için yapmamız gereken bir kaç işlem var.​

Kod:
1)	cat /etc/shells   # bu komut ile makinadaki shell scripts dillerini görmenizi sağlıyor
2)	which bash         #bu komut bizim bash'in yerini göstermesini sağlıyor
3)	touch hello.sh    #bu komut dosya oluşturmamızı sağlıyor desktop a gidip oluşturun
4)	ls -al                     #bu komut bizim bulunduğumuz konumdaki dosyaların izinlerini yani yetkileri gösteriyor
5)	chmod u+x hello.sh #bu komutta izinlerimiz veriyoruz yazdığımız kodu çalıştırmak için(run-execute)
6)	nano hello.sh      #komut satırında dosyanın içerisine yazmamızı sağlayan komuttur
7)	./hello.sh             #yazdığımız kodu çalıştırmaya yarayan komuttur

Bu işlemlerin ardından artık kodumuzu yamaya hazırız demektir.
ilk olarak ekrana merhaba diyelim.​

Kod:
#!/bin/bash ->bu satır bizim bash konumumuzu belirtir bunu yazmamız gerekiyor
#  -> yorum yazmak için kullanılır
echo "Hello world" ->echo komutu ekrana basma işlemini yapmaktadır.


Bir Linux sisteminde iki tür değişken vardır. Biri sistem değişkenleri ve diğeri kullanıcı tanımlı değişkenler. Bir değişken büyük harflerden oluşuyorsa, o zaman büyük olasılıkla - ancak zorunlu değildir - bir sistem değişkenidir. Bir örnek ile göz atalım;​

Kod:
#!/bin/bash


echo "shell ismimiz $BASH"
echo "shell versiyonumuz $BASH_VERSION" 
echo "Ana dizinimiz  $HOME"
echo "Mevcut çalışma dizini  $PWD"

#sistem komutlarını çalıştırır ve ekrana basar

name="veli"
#burada ise bir değişken tanımlamış oluyoruz

echo $name -> isimi direk basmak için başına $ işareti koyuyoruz

echo "isim $name" -> yazının içinde değişken bastırmayı görüyorsunuz

Kullanıcıdan girdi alalım.​

Kod:
#!/bin/bash

echo "birden cok isim girin: " 
read name1 name2 name3 -> bu satırda hem değişkenleri tanımlıyoruz hemde okuyoruz
echo "isimler: $name1, $name2, $name3" -> aldığımız isimleri ekrana bastırıyoruz

Ancak, varsayılan ayırıcı karakterin boşluk olduğuna dikkat edin, bu nedenle yukarıdaki örneğe üçten fazla dize veremezsiniz. Örneğin, bu "3'ten fazla kelime içeren bir dize", aslında üç dize olarak çözümlenir. İlki bu. İkincisi. Ve geri kalanı dize tırnak içine alınır, bu nedenle tek bir dize olarak yorumlanır ve "name3" değişkenine atanır.Ayrıca -p seçeneği aracılığıyla bir echo ifadesi ile bir okuma ifadesini birleştirebilirsiniz.​

Kod:
#!/bin/bash

read -p 'username: ' user_name
read -sp 'password: ' user_pass 
echo "Username is $user_name"
echo "Password is $user_pass"

Yukarıdaki örnekte, "read" ilk önce tırnak içine alınmış dizgeyi yazdırır, ardından kullanıcıdan gelen girdiyi bekler. Kullanıcı "-s" seçeneği ile yazarken de giriş dizesini gizleyebilirsiniz. Ayrıca "-a" seçeneği ile kullanıcıdan çok sayıda girdi alabilirsiniz. -bir seçenek verilen dizgeyi ayrıştırır ve boşlukla ayrılmış tüm kelimeleri belirtilen değişkene bir dizi olarak yerleştirir.​

Kod:
#!/bin/bash

echo "isim girin: " read -a names
echo "Names: ${names[0]}, ${names[1]}, ${names[2]}"

Okuma komutu herhangi bir argüman olmadan çağrılırsa, komutun girdisine "$REPLY" değişkeni üzerinden ulaşılabilir.​

Komut satırında ./hello.sh diye çalıştırılırken aşağıdaki komut sayesinde program başlamadan girdi almamızı sağlıyor.

Kod:
#!/bin/bash

# kullanıcıdan 3 adet argüman alınır
echo $1 $2 $3

echo "komut= $0" -> 0 index komut  eşittir
#programı çalıştırırken ./programınismi.sh ali ayşe fatma diye çalıştırmamızı sağlıyor ve 0 index=./programınismi.sh eşit oluyor.

# bu kısımda aynı işlem liste içerisine atılarak yapılıyor
args=("$@") - >liste oluşturuyoruz
echo ${args[1]} ${args[2]} ->listeye eleman alıyoruz
echo $@ -> bütün listeyi basmamızı sağlıyor
echo $# -> listedeki argüman sayısını basar
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.