Mengira ungkapan matematik dalam bahasa skrip shell - Bahagian V

Mengira ungkapan matematik dalam bahasa skrip shell - Bahagian V

Anda orang akan berasa selesa, memahami Skrip shell dan menuliskannya dengan lancar, mengikut keperluan anda. Ini adalah jawatan terakhir siri tutorial ini, di mana kami akan menjalankan sedikit kompleks Operasi matematik menggunakan bahasa skrip. Empat artikel terakhir dari Skrip shell siri yang secara kronologi.

Belajar bahagian skrip shell - v
  1. Memahami tips bahasa skrip shell linux asas - Bahagian I
  2. 5 skrip shell untuk pemula linux untuk mempelajari pengaturcaraan shell - Bahagian II
  3. Berlayar Melalui Dunia Linux Bash Scripting - Bahagian III
  4. Aspek Matematik Pengaturcaraan Linux Shell - Bahagian IV

Mari mulakan dengan siri Fibonacci

Corak nombor di mana setiap nombor adalah jumlah dua nombor sebelumnya. Siri ini 0, 1, 1, 2, 3, 5, 8... secara definisi, dua nombor pertama di Fibonccai urutan adalah 0 dan 1.

Skrip 1: Fibonacci.sh
#!/bin/bash echo "Berapa banyak nombor yang anda mahukan dalam siri Fibonacci ?"Baca jumlah x = 0 y = 1 i = 2 echo" siri fibonacci sehingga $ total terma :: "echo" $ x "echo" $ y "sementara [$ i -lt $ total] do i =" expr $ i + 1 "z =" expr $ x + $ y "echo" $ z "x = $ y y = $ z selesai
Output sampel
[[dilindungi e -mel] ~]# CHMOD 755 Fibonacci.sh [[dilindungi e -mel] ~]# ./Fibonacci.SH berapa nombor yang anda mahukan dalam siri Fibonacci ? 10 Siri Fibonacci Sehingga 10 Syarat :: 0 1 1 2 3 5 8 13 21 34

Muat turun Fibonacci.sh

Anda sudah biasa dengan hakikat bahawa komputer hanya memahami dalam format binari, i.e., '0'Dan'1'Dan sebahagian besar dari kita telah menikmati pembelajaran penukaran Perpuluhan ke Binari. Bagaimana dengan menulis skrip mudah untuk operasi kompleks ini.

Skrip 2: Decimal2Binary.sh
#!/bin/bash untuk ((i = 32; i> = 0; i--)); lakukan r = $ ((2 ** $ i)) Probablity+= ($ r) Selesai [[$# -EQ 0]] & echo -en "Decimal \ t \ tbinary \ n" untuk input_int dalam [dilindungi e -mel]; do s = 0 test $ #input_int -gt 11 & printf "%-10s \ t" "$ input_int" untuk n dalam $ probablity [@]; lakukan jika [[$ input_int -lt $ n]]; kemudian [[$ s = 1]] && printf "%d" 0 else printf "%d" 1; s = 1 input_int = $ (($ input_int - $ n)) fi selesai echo -e selesai
Output sampel
[[dilindungi e -mel] ~]# chmod 755 decimal2binary.sh [[dilindungi e -mel] ~]# ./Decimal2binary.SH 1121 Perduaan perpuluhan 1121 10001100001

Catatan: Skrip di atas menerima input pada masa larian, yang jelas merupakan bantuan.

Muat turun Decimal2Binary.sh

Baik terbina 'BC'Perintah boleh menukar a perpuluhan ke binari dalam skrip satu baris. Lari, di terminal anda.

[[E -mel dilindungi] ~]# echo "obase = 2; num" | BC

Menggantikan 'Num'dengan nombor, yang ingin anda tukar dari Perpuluhan ke Binari. Sebagai contoh,

[[E -mel dilindungi] ~]# echo "obase = 2; 121" | BC 1111001

Seterusnya kita akan menulis skrip yang berfungsi hanya bertentangan dengan skrip di atas, Menukar nilai binari ke Perpuluhan.

Skrip 3: binary2decimal.sh
#!/bin/bash echo "Masukkan nombor:" Baca binari jika [$ binari -eq 0] kemudian echo "masukkan nombor yang sah" lain sementara [$ binari -ne 0] lakukan bnumber = $ decimal binari = 0 kuasa = 1 sementara [$ Binari -ne 0] do rem = $ (expr $ binari % 10) perpuluhan = $ ((perpuluhan+(rem*kuasa))) kuasa = $ ((kuasa*2)) binari = $ (expr $ binari / 10 ) dilakukan echo "$ perpuluhan" yang dilakukan fi
Output sampel
[[dilindungi e -mel] ~]# chmod 755 binary2decimal.sh [[dilindungi e -mel] ~]# ./Binary2decimal.SH Masukkan nombor: 11 3

Catatan: Fungsi di atas boleh dilakukan di terminal menggunakan 'BC'Perintah sebagai.

[[E -mel dilindungi] ~]# echo "ibase = 2; binari" | BC

Menggantikan 'Binari'Dengan nombor binari, iaitu.,

[[E -mel dilindungi] ~]# echo "ibase = 2; 11010101" | BC 213

Muat turun binary2decimal.sh

Begitu juga anda boleh menulis penukaran dari oktal, Hexadecimal ke perpuluhan Dan sebaliknya. Mencapai hasil di atas di terminal menggunakan 'BC'Perintah adalah.

Perpuluhan ke oktal
[[E -mel dilindungi] ~]# echo "obase = 8; perpuluhan" | BC
Perpuluhan ke hexadecimal
[[E -mel dilindungi] ~]# echo "obase = 16; perpuluhan" | BC
Oktal untuk perpuluhan
[[E -mel dilindungi] ~]# echo "ibase = 8; octal" | BC
Hexadecimal kepada perpuluhan
[[E -mel dilindungi] ~]# echo "ibase = 16; hexadecimal" | BC
Binari ke oktal
[[E -mel dilindungi] ~]# echo "ibase = 2; obase = 8 binari" | BC

Sesetengah Angka biasa ujian yang digunakan dalam bahasa skrip shell dengan keterangan adalah.

Ujian: integer1 -eq integer2 Maksud: integer1 sama dengan integer2
Ujian: Integer1 -Ge Integer2 Maksud: Integer1 lebih besar daripada atau sama dengan integer2
Ujian: Integer1 -Gt Integer2 Maksud: Integer1 lebih besar daripada integer2
Ujian: Integer1 -Le Integer2 Makna: Integer1 kurang daripada atau sama dengan integer2
Ujian: Integer1 -Lt Integer2 Makna: Integer1 kurang daripada integer2
Ujian: integer1 -ne integer2 Maksud: integer1 tidak sama dengan integer2

Itu sahaja untuk artikel ini, dan siri artikel. Ini adalah artikel terakhir dari Siri skrip shell Dan ini tidak bermakna bahawa tiada artikel mengenai bahasa skrip akan berada di sini lagi, itu hanya bermakna tutorial skrip shell sudah berakhir dan setiap kali kita dapati topik yang menarik yang patut diketahui atau pertanyaan dari anda, kami akan dengan senang hati meneruskan siri ini dari di sini.

Tetap sihat, ditala dan disambungkan ke Tecmint. Tidak lama lagi saya akan datang dengan topik lain yang menarik, anda akan suka membaca. Kongsi pemikiran berharga anda di Seksyen komen.