How to Write a Shell Script with Bash? Turkish Tutorial #2

in utopian-io •  7 years ago  (edited)

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.

1.gif
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.

2.gif
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.

3.gif
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.

4.gif

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.

5.gif

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

very helpful thanks

Thx

Thank you for the contribution. It has been approved.

Suggestions:

  • this tutorial again barely qualified because, although the bash script itself is valid, it's useless because the command line has built-in mathematic operations via bcwhich works out of the box and far more advanced than your solution;
  • of course a tutorial is about explaining how an application / programming environment works, so in the case of bash / shell scripting you should explain the language syntax, built-in commands and code structure, via examples (such as building a simple calculator);
  • so for your next tutorial, if you plan on publishing more on bash / shell scripting you need to improve:

=> 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]

Thank you, I will consider the suggestions.

Hey @sedatyildiz I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

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