İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Yazılım
  4. Diğer Yazılım Konuları
Diğer Yazılım Konuları

Bash Script Hakkinda Birkac Soru

DarkBB23.04.20147 cevap4.946 görüntüleme
2014'den beri393 mesaj
#1
İ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

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

Cevaplar
Deleted-Name
2013'den beri2.602 mesaj
#2
DarkBB dedi: ↑
İ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

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

% ile kalan alabilirsin
int mi diye kontrol etmek içinde regex kullanırsın

re='^[0-9]+$' if ! [[ $yournumber =~ $re ]] ; then    echo "error: Not a number" >&2; exit 1 fi

Stackoverflow'dan aldım kodu
DarkBB Konuyu açan
2014'den beri393 mesaj
#3
Cevabiniz icin sagolun, tam umudumu kesmistim :( Simi verdiginiz kodu deniyecegim.
DarkBB Konuyu açan
2014'den beri393 mesaj
#4
Yapamadim :(
DarkBB Konuyu açan
2014'den beri393 mesaj
#5
Baska bir kod ile sonunda yaptim. Bu koda cok benziyor.
DarkBB Konuyu açan
2014'den beri393 mesaj
#6
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 ?



Not: Tapatalk nedense resmi sadece 300 px olarak gosteriyor. Onceki resim 600 px lerde idi :(
Deleted-Name
2013'den beri2.602 mesaj
#7
DarkBB
Yine regex kullanacaksın
"\s" space denetler true dönerse hata verirsin anlamadıysan google'dan regex'i araştır
DarkBB Konuyu açan
2014'den beri393 mesaj
#8
Hocam daha yeniyimde kusura bakmayın. Birazdan deneyeceğim.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.