Shell Scripts Programlama - 2

merlins

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

Merhaba 2.dersimiz ile karşınızdayım. Haydi başlayalım;
Bash'deki en temel dallanma ifadesi if ifadesidir. Sözdizimi yeni başlayanlar için korkutucu görünse de, temelde C, C ++, Java vb. Gibi diğer programlama dilleriyle aynıdır. Köşeli parantezlerin önündeki ve arkasındaki boşluklara dikkat edin. Shell boşluktan bağımsız değildir, bu nedenle bu boşlukları doğru yerlere koyduğunuzdan emin olmanız gerekir. Aksi takdirde, her boşluk hatası için bir sözdizimi hatası alırsınız.

Kod:
#!/bin/bash

if [ koşul ]; then -> eğer anlamına gelmektedir 
cümle -> buraya işeme alacağınız cümleleri yazabilirsiniz
fi -> bitirmek için kullanılır
#----------------------------aşağıdaki farklı bir yazım türüdür
if [ koşul ]
then
cümle
fi
Operatörler​




-eq : eşittir
-ne : eşit değildir
-gt : büyüktür
-ge : büyüktür veya eşittir
-lt : küçüktür
-le : küçüktür veya eşittir
< : küçüktür (çift parantez içinde)
<= : küçüktür veya eşittir (çift parantez içinde)
> : büyüktür (çift parantez içinde)
>= : büyüktür veya eşittir (çift parantez içinde)

Operatörler yukarıdaki maddelerle sınırlı değildir. Operatörlerin tam listesini “Linux Dokümantasyon Projesi” web sitesinde bulabilirsiniz.​

Kod:
#!/bin/bash


count=10


if [ $count -eq 9 ]
then
echo "koşul dogru"
fi


if (($count > 9))
then
echo "koşul dogru"
fi

#---------------ikinci örnek----------------------

word="abc"


if [ $word == "abc" ] # tek eşittir işareti de geçerlidir
then
echo "koşul dogru"
fi

#---------------üçüncü örnek----------------------

word=a


if [[ $word < "b" ]]
then
echo "Condition is true" 
else
echo "Condition is false"
fi

#---------------dörtüncü örnek----------------------


word=a


if [[ $word == "b" ]]
then
echo "harf b eşit" 
elif [[ $word == "a" ]] ->else if anlamındadır bitmediği için fi konmaz fi bitim noktasına konur
then
echo "harf a eşit" 
else
echo "harf a yada b eşit degil"
fi -> bitim noktası

Dosya işlemleri​

Dosyalarla uğraşmak, Linux komut dosyası yazmanın çok önemli bir parçasıdır. İçin çok büyük miktarda sorgu seçeneği vardır bash'da dosya test işlemleri. Tam listeyi Linux Dokümantasyon Proje web sitesinde bulabilirsiniz.​


Kod:
#!/bin/bash


echo -e "dosya adını girin: \c"
read fileName


# ismi kontrol et
if [ -e $fileName ]
then
echo "$fileName bulundu." 
else
echo "$fileName bulunamadı"
fi


# Normal dosyayı kontrol edin: -f
# Dizinleri kontrol edin:  -d

#-----------------ikinci örnek------------------


echo -e "dosya ismini girin \c"
read fileName


if [ -f $fileName ]
then
	if [ -w $fileName ] -> if içinde if
	then
	echo "Metin yazın. Çıkmak için CTRL-D'ye basın. " 
	cat >> $fileName
	else
	echo "Yazmaya izniniz yoktur"
	fi 
else
echo "$fileName does not exist."
fi

BONUS​
Hesap Makinesi​

Kod:
#!/bin/bash


if [ $# -ne 3 ]
then
echo "3 adet argüman girin!!" 
exit 1
fi


num1=$1 
num2=$2
operator=$3


if [[ $operator == "+" ]]
then
echo "Sonuc: $(( num1 + num2 ))" 
elif [[ $operator == "-" ]]
then
echo "Sonuc: $(( num1 - num2 ))" 
elif [[ $operator == "*" ]]
then
echo "Sonuc: $(( num1 * num2 ))" 
elif [[ $operator == "/" ]]
then
echo "Sonuc: $(( num1 / num2 ))" 
elif [[ $operator == "%" ]]
then
echo "Sonuc: $(( num1 % num2 ))" else
echo "Hatalı operator secimi."
fi

Çalışma örneği:​

Kod:
$ ./test.sh 10 2 \&
Hatalı operator secimi.


$ ./test.sh 10 2 +
Sonuc: 12


$ ./test.sh 10 2 \*
Sonuc: 20
 
Ü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.