What Will I Learn?
With the codes we have learned from the first derste, we will program the calculator.
- Shell Script
- Bash 4.4
Requirements
Linux Operating System
Difficulty
Intermediate
Tutorial Contents
I'll show you how to write Shell Script with Bash on Linux operating systems. In this first lesson we will learn the "echo" and "read" constructs.
Curriculum
How to Write a Shell Script with Bash? Turkish Tutorial #1
How to Write a Shell Script with Bash? Turkish Tutorial #2
Birinci derste öğrendiğimiz read ve echo materyallerini geliştirerek bir kaç döngü ve ek materyal ile birlikte basit bir hesap makinesi yapmayı öğreneceğiz.
nano hesap.sh
komutu ile yeni bir sh dosyası oluşturup içerisine editör ile giriş yaptık ve bash çalışması için en üste #!/bin/bash
yazdık.
while true; do
komutu ile bir while döngüsü yarattık ve içerisine hesap makinesi için gerekli komutları girmeye başlayacağız.
read -p "Birinci sayıyı giriniz " sayi1
ve read -p "İkinci sayıyı giriniz " sayi2
komutları ile klavyeden matematik işemleri için gireceğimiz sayi1 ve sayi2 değerlerine okuma görevleri atadık.
Hemen altından devam ederek PS3="Yapılacak işlemi seçiniz "
ile dört işlem seçiminden birini okuması için ps3 değeri verip sonrasında select sonuc in Topla Çıkar Çarp Böl; do
komutu ile seçim tablomuzu açarak değer atamasına başlıyoruz.
Tablomuzun içine girip case $sonuc in
ile durum şablonu açıp içerisinde dört işlem komutları yazarak devam ediyoruz. Yukarıda sonuc değeri için Topla, Çıkar, Çarp, Böl seçimlerini belirlemiştik, yapacağı işlemleri de;
Topla) islem='+' ; break ;;
Çıkar) islem='-' ; break ;;
Çarp) islem='*' ; break ;;
Böl) islem='/' ; break ;;
Şeklinde belirliyoruz. En sonuna da yanlış +-*/ değerleri yerine farklı bir komut almaya çalışmaması için boş komut atamamız gerekiyor,
*) echo "Geçersiz işlem" ;;
şeklinde geçersiz işlem değerini vererek esac
ile şablonu kapatıyouz.
Böl) islem
'den sonra = koymayı unutmuşuz onu düzelttik,
done
ile sonuc tablosundan çıkıyoruz, hemen altında sonuc=$(echo "$sayi1 $islem $sayi2" | bc -l)
yazarak sonuc
değerini $sayi"
, $islem
, $sayi2
değerlerini hesaplarak almasını ve ekrana bastırmasını söylüyoruz. Sonucu almak için ise printf "%s %s %s = %s\n\n" "$sayi1" "$islem" "$sayi2" "$sonuc"
komutunu girip $sayi"
, $islem
, $sayi2
ile birlikte $sonuc
değerini de alıp ekrana sonucu bastırmış oluyoruz. Sonrasında done
yaparak betiğimizi bitiriyoruz ve CTRL+X ile kaydedip çıkabiliriz.
Şimdi programımızı çalıştıralım ve bir kaç hesap yapalım.
sh hesap.sh
komutu ile programımızı çalıştırdık ve bir kaç hesap yaptık, başarılı bir şekilde matematik işlemlerimizi gerçekleştirdi.
Hesap makinesini direkt indirmek isterseniz: https://github.com/sdtyldz/calculator
Bir sonraki Shell/Bash dersimizde görüşmek üzere.
Posted on Utopian.io - Rewarding Open Source Contributors
very helpful thanks
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thx
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for the contribution. It has been approved.
Suggestions:
bc
which works out of the box and far more advanced than your solution;=> I strongly suggest you write in English especially inside your bash code: I can auto-translate the article text to follow along but I'm having a hard time evaluating your Turkish code;
=> explain language constructs, based on an example task, but don't focus on the example task itself: teaching how to build "a very simple calculator" is unapprovable for the future, because there are millions of similar tutorials using the exact same programmatic concepts you could write that way, which I will not tolerate.
Good luck!
@scipio
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you, I will consider the suggestions.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @sedatyildiz I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit