Shell Scripts Programlama - 3

merlins

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

Merhaba 3.dersimiz ile karşınızdayım. Haydi başlayalım;​


Case İfadesi (switch)​

Geçen derste verdiğim bonus üstünden size aktaracağım;​
Kod:
#!/bin/bash


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


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


case $operator in
"+" )
	echo "Sonuc: $(expr $num1 + $num2)" ;; 
"-" )
	echo "Sonuc: $(expr $num1 - $num2)" ;; 
"*" )
	echo "Sonuc: $(expr $num1 * $num2)" ;;
"/" )
	echo "Sonuc: $(expr $num1 / $num2)" ;;
"%" )
	echo "Sonuc: $(expr $num1 % $num2)" ;;
* )
	echo "Hatalı operator secimi." ;;
esac -> bitirmek için kullanılması şart olan koşul

Dizi(Array)​

Kod:
#! /bin/bash


os=('ubuntu' 'windows' 'manjaro' 'FreeBSD') -> oluşturma
os[4]='mac' -> index ile değeri değiştirme


unset os[1] -> index 1'i silme


echo "${os[@]}" # Tüm elemanları yazdırma
echo "${os[0]}" # Seçili indexi yazdırma
echo "${!os[@]}" # Dizinin indislerini yazdırma
echo "${#os[@]}" # Dizinin uzunluğunu yazdırma


While Döngüsü​

While döngüsü, diğer programlama dillerine çok benzer. İki bölümden oluşur. İlk bölüm döngünün durumudur. Döngü, koşul doğru olarak değerlendirildiği sürece çalışır. İkinci kısım gövdededir. Gövde yalnızca bir komuttan veya birden çok komuttan oluşabilir.​

Kod:
#! /bin/bash


n=1


while [ $n -le 10 ]
do
echo "$n"
# n=$(expr $n + 1)
# n=$(( n + 1 )) (( n++ ))
sleep 1
done


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


while (( $n <= 10)) -> döngü koşılu
do-> başladığını belirtir
	echo $n
	(( n++ )) -> döngüden çıkmak için yapılan işlem
# bu işle önemlidir yoksa sonsuz döngüye girilir.
done-> bittiğini belirtir


#-----------üçüncü örnek------------
# "read" komutu ile döngü kurma
while read line
do
echo $line 
done < test3.sh


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


cat test3.sh | while read line
do
echo $line 
done
Until Döngüsü​

Until döngüsü, hafif bir farkla while döngüsü ile hemen hemen aynıdır. Koşul yanlışsa, do ve done arasındaki komutlar çalıştırılır.
Kod:
#! /bin/bash

n=1
until [ $n -gt 10 ]
do
echo $n
(( n++ ))
done

For Döngüsü

For döngüsünün birden çok sürümü vardır. İlki, boşlukla sınırlandırılmış liste olarak verilen komutları çalıştırır. İkincisi Python döngülerini sever. Yineleme değişkenini adım adım artırarak baştan sona bir dizi sayı ve döngü alır. Sonuncusu C tarzı döngüdür. Bu tipin çalışma prensibi, döngüler için C ile tamamen aynıdır.

Kod:
#! /bin/bash


for myVar in 1 2 3 4 5
do
echo $myVar done


#----------------------------


for myVar in {1..10..2} #başlangıç..bitiş..artma oranı
do
echo $myVar 
done


#----------------------------


for (( i=0; i<5; i++ ))
do
echo $i 
done

For, birkaç komutu sırayla çalıştırabilir.​

Kod:
#! /bin/bash


for cmd in ls pwd date
do
echo "--------------$cmd--------------"
$cmd 
done

Klasördeki tüm dizinleri yazdıralım.​


Kod:
#! /bin/bash


for item in *
do
if [ -d "$item" ]
then
echo "$item"
fi 
done
 
Ü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.