Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Benzer bir sunumlar


... konulu sunumlar: "BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)"— Sunum transkripti:

1 BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)

2 Bu sunu aşağıdaki link kullanılarak hazırlanmıştır.

3 Dizi Genellikle aynı türde (bazen farklı türde) birden fazla veriyi saklamak amacıyla kullanılan en temel veri yapısına dizi denir. Bash kabuğu programlamada: dizilerin boyutları ile ilgili bir maksimum kısıtlaması yoktur. dizi üyeleri ardışıl olarak oluşturulmak veya indekslenmek zorunda değildir. dizi indisi 0’dan başlar.

4 Dizi Deklarasyonu ve Dizi Elemanlarına İndeks (İndis) Kullanılarak Değer Atama
Aşağıdaki kullanım Bash kabuğu programlamada bir dizinin otomatik olarak oluşturulmasını sağlar. name[index]=value; Bu kullanımda name dizinin adıdır. index ise değeri sıfıra eşit veya sıfırdan büyük bir tam sayı ve deyim olabilir. Dizi elemanlarına index sayesinde ulaşılır ve index kare parantezler arasına alınır.

5 Dizi Elemanlarına İndeks Kullanarak Ulaşım
$ cat ArrayManip.sh #!/bin/bash Linux[0]="Debian"; Linux[1]="Red Hat"; Linux[2]="Ubuntu"; Linux[3]="Suse"; Linux[4]="Fedora"; echo ${Linux[1]}; #Dizi Elemanına İndeks İle Ulaşmak İçin echo $Linux; #echo ${Linux}; #İndex Belirtilmezse $./ArrayManip.sh Red Hat Debian

6 Dizi Deklarasyonu Anında Dizi Elemanlarına İlk Değer Atama
Her bir dizi elemanını indeks kullanarak tek tek oluşturmak yerine, bir Bash dizisi deklarasyon anında ilk değer atama listesi kullanılarak da oluşturulabilir. Bu amaçla normal parantezler kullanılır ve dizi elemanları birbirlerinden en az bir boşluk karakteri ile ayrılır. Bir dizi elemanının boşluk karakteri içermesi durumunda ilgili dizi elemanı tırnak içerisine alınmalıdır. $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${Linux[1]}; Red Hat

7 Boş Dizi Deklarasyonu $ Linux=();

8 Bir Dizinin Tamamına Ulaşım
İndeks numarası karakteri kullanılarak bir dizinin tamamına ulaşılabilir. (Bu işlem bir dizinin elemanlarını bir döngü ile ziyaret edebilmek amacıyla sıklıkla kullanılır.) $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo Debian Red Hat Ubuntu Suse Fedora

9 Bir Dizinin Eleman Sayısı (Boyutu)
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo 5

10 Bir Dizinin n. İndisindeki Elemanının Boyutu
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${#Linux[2]}; #İndeks 2’de bulunan dizi elemanının boyutu 6

11 Bir Dizinin Belirli Bir İndis Aralığındaki Elemanlarına Ulaşım
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo #3. ve 4. indekslerdeki elemanlar Suse Fedora $ echo ?? $ echo

12 Bir Dizinin Belirli Bir Elemanının Belirli Bir Aralıktaki Elemanlarına Ulaşım
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${Linux[2]:0:4}; #2. indeksteki elemanın ilk 4 karakteri Ubun

13 Mevcut Bir Dizinin Sonuna Yeni Bir Dizi Elemanı Ekleme
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ "Knoppix"); $ echo ${Linux[5]}; Knoppix $ echo 6 $ "Knoppix"); $ echo ${# 7 Orijinal dizi çift tırnak içerisine alınmazsa, içinde boşluk karakteri bulunan dizi elemanları aynen muhafaza edilmezler. If the elements in your array could contain whitespace, you need to use double quotes so that each element is treated as a separate "word:" foo=("the first" "the second") for i in do # Expands to 'for i in "the first" "the second"; do...' echo $i # so the loop runs twice done # the first # the second Contrast this with the behavior without double quotes: for i in do # Expands to 'for i in the first the second; do...' echo $i # so the loop runs four times! # the # first # second

14 Mevcut Bir Dizinin Sonuna Yeni Bir Dizi Elemanı Ekleme
$ Linux+=("Kali Linux"); veya $

15 Mevcut Bir Dizinin Başına Yeni Bir Dizi Elemanı Ekleme
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ Linux=("Kali Linux" $ echo Kali Linux Debian Red Hat Ubuntu Suse Fedora Çift tırnak kullanılmasaydı ne olurdu? Çift tırnağın kullanılması ve kullanılmaması durumlarında dizinin boyutlarını test ediniz.

16 Bir Dizi Elemanının Silinmesi
Çift tırnak kullanılmasaydı ne olurdu? Çift tırnağın kullanılması ve kullanılmaması durumlarında dizinin boyutlarını test ediniz. $ cat ArrayManip.sh #!/bin/bash Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); pos=3; + 1))}"); echo $./ArrayManip.sh Debian Red Hat Ubuntu Fedora

17 Bir Dizinin Kopyalanması
$ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ $ echo Debian Red Hat Ubuntu Suse Fedora Çift tırnak kullanılmasaydı ne olurdu? Çift tırnağın kullanılması ve kullanılmaması durumlarında orijinal ve kopya dizinin boyutlarını test ediniz.

18 Bir Dizinin Elemanlarına Döngü İle Ulaşım (1)
$ cat LogFile.txt Welcome to thegeekstuff Linux Unix

19 Bir Dizinin Elemanlarına Döngü İle Ulaşım (2)
$ cat LoadContent.sh #!/bin/bash fileContent=(`cat LogFile.txt`) ; for i in #Çift tırnaklara dikkat do echo "$i"; done $ ./LoadContent.sh

20 Bir Dizinin Elemanlarına Döngü İle Ulaşım (3)
$ cat LoadContent.sh #!/bin/bash fileContent=($(cat LogFile.txt )) ; do echo "${fileContent[$i]}"; done $ ./LoadContent.sh

21 Bir Karakter Dizisinin (String) Boyutunun/Uzunluğunun Tespiti
$ isim="Deniz DAL"; $ echo ${#isim}; 9 $ echo $isim | wc -c 10 $ echo -n $isim | wc -c Neden? $ echo $isim | od -abc

22 Uygulama Kendisine parametre olarak aldığı bir klasörün içerisindeki en uzun isme sahip dosyayı: dosya uzantısı isme dahil iken dosya uzantısı isme dahil değilken bularak ekrana basan iki kabuk programı yazınız.


"BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)" indir ppt

Benzer bir sunumlar


Google Reklamları