Bash Script Hakkinda Birkac Soru

  • Konuyu başlatan Konuyu başlatan DarkBB
  • Başlangıç tarihi Başlangıç tarihi

DarkBB

Asistan
Katılım
18 Mart 2014
Mesajlar
393
Reaksiyon puanı
3
Puanları
18
İyi gunler. iPhone 4'te hesap.sh adinda bir dosya olusturup cok basit bir hesap makinesi yaptim.Birkac sorunum var.

$s1'i okurken girilen deger sayı(int) turunden farkli olan hepsine echo ile bisi yazdirip exit 1 ile cikis yaptirmak istiyorum fakat benim yaptigim sadece char tipindekiler icin.

Birde herhangi bir sayinin kalanini yani modunu bash scriptte nasil alicaz ?

------------------------------------------

#!/bin/bash

echo "Birinci Sayıyı Giriniz"
read s1

if [[ $s1 -eq char ]]
then
echo "Sadece Sayı Girebilirsiniz !"
exit 1
fi

echo "Yapmak İstediğiniz İşlemi Seçin (+,-,x,/)"
read islem

echo "İkinci Sayıyı Giriniz"
read s2

case "$islem" in
+) echo 'Sonuç =' $(( $s1 + $s2 ));;
-) echo 'Sonuç =' $(( $s1 - $s2 ));;
/) echo 'Sonuç =' $(( $s1 / $s2 ));;
x) echo 'Sonuç =' $(( $s1 * $s2 ));;
*) echo "Yanlış Karakter Kullandınız !";;
esac

------------------------------------------

a2a2a6e3.jpg
 

Deleted-Name

Profesör
Cezalı
Katılım
24 Mayıs 2013
Mesajlar
2,602
Reaksiyon puanı
18
Puanları
218
İyi gunler. iPhone 4'te hesap.sh adinda bir dosya olusturup cok basit bir hesap makinesi yaptim.Birkac sorunum var.

$s1'i okurken girilen deger sayı(int) turunden farkli olan hepsine echo ile bisi yazdirip exit 1 ile cikis yaptirmak istiyorum fakat benim yaptigim sadece char tipindekiler icin.

Birde herhangi bir sayinin kalanini yani modunu bash scriptte nasil alicaz ?

------------------------------------------

#!/bin/bash

echo "Birinci Sayıyı Giriniz"
read s1

if [[ $s1 -eq char ]]
then
echo "Sadece Sayı Girebilirsiniz !"
exit 1
fi

echo "Yapmak İstediğiniz İşlemi Seçin (+,-,x,/)"
read islem

echo "İkinci Sayıyı Giriniz"
read s2

case "$islem" in
+) echo 'Sonuç =' $(( $s1 + $s2 ));;
-) echo 'Sonuç =' $(( $s1 - $s2 ));;
/) echo 'Sonuç =' $(( $s1 / $s2 ));;
x) echo 'Sonuç =' $(( $s1 * $s2 ));;
*) echo "Yanlış Karakter Kullandınız !";;
esac

------------------------------------------

a2a2a6e3.jpg
% ile kalan alabilirsin
int mi diye kontrol etmek içinde regex kullanırsın
Kod:
re='^[0-9]+$' if ! [[ $yournumber =~ $re ]] ; then    echo "error: Not a number" >&2; exit 1 fi
Stackoverflow'dan aldım kodu
 

DarkBB

Asistan
Katılım
18 Mart 2014
Mesajlar
393
Reaksiyon puanı
3
Puanları
18
Cevabiniz icin sagolun, tam umudumu kesmistim :( Simi verdiginiz kodu deniyecegim.
 

DarkBB

Asistan
Katılım
18 Mart 2014
Mesajlar
393
Reaksiyon puanı
3
Puanları
18
Baska bir kod ile sonunda yaptim. Bu koda cok benziyor.
 

DarkBB

Asistan
Katılım
18 Mart 2014
Mesajlar
393
Reaksiyon puanı
3
Puanları
18
Hocam son bir sey kaldi. Bir suru bosluk birakip sayi yazinca halen calisiyor. Resmi asagida. İstedigim sayidan once veya sayidan sonra bosluk girildiginde hata vermesini istiyorum. Nasil yapabilirim ?

byjamyde.jpg


Not: Tapatalk nedense resmi sadece 300 px olarak gosteriyor. Onceki resim 600 px lerde idi :(
 

Deleted-Name

Profesör
Cezalı
Katılım
24 Mayıs 2013
Mesajlar
2,602
Reaksiyon puanı
18
Puanları
218
[MENTION=395321]DarkBB[/MENTION]
Yine regex kullanacaksın
"\s" space denetler true dönerse hata verirsin anlamadıysan google'dan regex'i araştır
 

DarkBB

Asistan
Katılım
18 Mart 2014
Mesajlar
393
Reaksiyon puanı
3
Puanları
18
Hocam daha yeniyimde kusura bakmayın. Birazdan deneyeceğim.
 
Üst