21 Ocak 2015 Çarşamba

Bash Script Uygulamaları - 2


Bash kabuk programlamaya kaldığımız yerden devam edelim. Bu derse başlamadan önce diğer 2 dersi tamamladığınızdan emin olun. Merak edenler Kabuk Programlamaya Giriş ve Bash Script Uygulamaları -1 linklerini inceleyebilirler.

1. Kullanıcıdan TC kimli nosunu girmesini isteyin ve TC nosunun son hanesine göre;
  • Eğer son hanesi 0, 1, 2 ile bitiyorsa "Maaş artışınız %10'dur" yazsın.
  • Eğer son hanesi 3, 4, 5 ile bitiyorsa "Maaş artışınız %20'dir" yazsın.
  • Eğer bunlardan farklı bir son haneye sahipse "Üzgünüm maaşınız aynıdır" yazsın.
Bu tür bir soru case ile rahatça çözülebilir. Script klasörü altında sayi.sh isimli bir dosya oluşturalım. İçeriğide aşağıdaki gibi olmalıdır.


[melih@dhcppc3 scripts]$ vi sayi.sh
[melih@dhcppc3 scripts]$ cat sayi.sh 
#!/bin/bash
echo -n "Lütfen TC no'nuzun son hanesini giriniz:"
read sayi1
case $sayi1
in
0 | 1 | 2 )
echo "Maaş artışınız %10'dur.";;
3 | 4 | 5 )
echo "Maaş artışınız %20'dir";;
*)
echo "Üzgünüm maaşınız aynıdır";;
esac
[melih@dhcppc3 scripts]$ bash sayi.sh 
Lütfen TC no'nuzun son hanesini giriniz:2
Maaş artışınız %10'dur.
[melih@dhcppc3 scripts]$ bash sayi.sh 
Lütfen TC no'nuzun son hanesini giriniz:5
Maaş artışınız %20'dir
[melih@dhcppc3 scripts]$ bash sayi.sh 8
Lütfen TC no'nuzun son hanesini giriniz:9
Üzgünüm maaşınız aynıdır

2. Ekrana aşağıdaki gibi çıktı verecek bir script yazınız.

Sayı : 1
Sayı : 2
Sayı : 3

[melih@dhcppc3 scripts]$ vi 123.sh
[melih@dhcppc3 scripts]$ cat 123.sh 
#!/bin/bash

for i in 1 2 3
do
 echo "Sayı : $i"
done
[melih@dhcppc3 scripts]$ bash 123.sh 
Sayı : 1
Sayı : 2
Sayı : 3

3.  Yukardaki örneği eğer 1'den 100' e kadar yazdırmak istersek nasıl bir script yazmalıyız.

[melih@dhcppc3 scripts]$ vi for2.sh 
[melih@dhcppc3 scripts]$ cat for2.sh 
#!/bin/bash

for ((i=1;i<=100;i++))
do
 echo "Sayı: $i "
done
[melih@dhcppc3 scripts]$ bash for2.sh 
Sayı: 1 
Sayı: 2 
Sayı: 3 
Sayı: 4 
Sayı: 5 
Sayı: 6 
Sayı: 7 
Sayı: 8 
Sayı: 9 
Sayı: 10 
...
..
.

4. Aşağıdaki çıktıyı elde etmek için gereken scripti yazınız.

11 
111 
1111 
11111 

[melih@dhcppc3 scripts]$ vi for3.sh 
[melih@dhcppc3 scripts]$ cat for3.sh 
#!/bin/bash

for ((i=1;i<=5;i++))
do
 for ((j=1;j<=i;j++))
 do
  echo -n 1
 done
 echo " "
done
[melih@dhcppc3 scripts]$ bash for3.sh 
1 
11 
111 
1111 
11111 

5.  Aşağıdaki şeklin ne kadar uzun olacağını kullanıcı belirlesin.

11 
111 
1111 
11111 
...
..
.

[melih@dhcppc3 scripts]$ vi for4.sh 
^[:q![melih@dhcppc3 scripts]$ vi for4.sh 
[melih@dhcppc3 scripts]$ vi for4.sh 
[melih@dhcppc3 scripts]$ cat for4.sh 
#!/bin/bash
echo "Bir sayı giriniz:"
read sayi
for ((i=1;i<=sayi;i++))
do
 for ((j=1;j<=i;j++))
 do
  echo -n 1
 done
 echo " "
done
[melih@dhcppc3 scripts]$ bash for4.sh 
Bir sayı giriniz:
10
1 
11 
111 
1111 
11111 
111111 
1111111 
11111111 
111111111 
1111111111 

6. While kullanarak aşağıdaki çıktıyı elde ediniz. 1'den 10'a kadar ekrana yazdırın.

Sayı : 1
Sayı : 2
...
Sayı : 9
Sayı : 10

[melih@dhcppc3 scripts]$ vi while.sh 
[melih@dhcppc3 scripts]$ cat while.sh 
#!/bin/bash

i=1
while [ $i -le 10 ]
do
 echo "Sayı:  $i"
 let i=$i+1
done
[melih@dhcppc3 scripts]$ bash while.sh 
Sayı:  1
Sayı:  2
Sayı:  3
Sayı:  4
Sayı:  5
Sayı:  6
Sayı:  7
Sayı:  8
Sayı:  9
Sayı:  10

2. Yol

#!/bin/bash
i=0
while (( i++<10 ))
do
echo "Sayı: $i"
done

7. 10 adet html dosyası oluşturun ve her bir dosyanın içinde "Bu bir n. dosyadır" yazdın.

Örnek;
dene1.html içeriği "Bu bir 1. dosyadır."
dene7.html içeriği "Bu bir 7. dosyadır."

[melih@dhcppc3 scripts]$ vi denehtml.sh 
[melih@dhcppc3 scripts]$ cat denehtml.sh 
#!/bin/bash

for ((i=1;i<=10;i++))
do
 echo "Bu bir $i.dosyadır" > dene$i.html
done
[melih@dhcppc3 scripts]$ bash denehtml.sh 
[melih@dhcppc3 scripts]$ ls *.html
dene10.html  dene2.html  dene4.html  dene6.html  dene8.html
dene1.html   dene3.html  dene5.html  dene7.html  dene9.html
[melih@dhcppc3 scripts]$ cat dene4.html 
Bu bir 4.dosyadır

Bu yazımında sonuna geldim. Bash Script Uygulamaları daha devam edicek. Umarım açıklayıcı ve doğru bir kaynak olmuştur. Görüşmek üzere..


Hiç yorum yok:

Yorum Gönder