Berechnung mathematischer Ausdrücke in der Shell -Skriptsprache - Teil V

Berechnung mathematischer Ausdrücke in der Shell -Skriptsprache - Teil V

Ihre Leute würden sich wohl fühlen, verstehen Shell -Skripte und sie fließend zu schreiben, gemäß Ihrem Bedürfnis. Dies ist der letzte Beitrag dieser Tutorial -Serie, in dem wir ein bisschen komplex durchführen werden Mathematische Operationen Verwenden der Skriptsprache. Die letzten vier Artikel von Artikeln Shell Scripting Serien, die chronologisch sind.

Lernen Sie Shell Scripting -Teil - v
  1. Grundlegend
  2. 5 Shell -Skripte für Linux -Neulinge zum Erlernen von Shell -Programmierungen - Teil II
  3. Segeln durch die Welt des Linux Bash Scripting - Teil III
  4. Mathematischer Aspekt der Linux -Shell -Programmierung - Teil IV

Beginnen wir mit der Fibonacci -Serie

Ein Zahlenmuster, bei dem jede Zahl die Summe von zwei vorhergehenden Zahlen ist. Die Serie ist 0, 1, 1, 2, 3, 5, 8… Per Definition die ersten beiden Zahlen in der Fibonccai Sequenz sind 0 und 1.

Skript 1: Fibonacci.Sch
#!/bin/bash echo "Wie viele Zahlen wollen Sie von der Fibonacci -Serie ?"Lesen Sie die Gesamtzahl x = 0 y = 1 i = 2 echo" Fibonacci -Serie bis zu $ ​​Total Terms :: "echo" $ x "echo" $ y ", während [$ i -lt $ insgesamt] do i =" expr $ i + 1 "z =" exprr $ x + $ y "echo" $ z "x = $ y y = $ z DURT
Probenausgabe
[[E -Mail geschützt] ~]# Chmod 755 Fibonacci.SH [[E -Mail geschützt] ~]# ./Fibonacci.Sh wie viele Zahlen wollen Sie von der Fibonacci -Serie ? 10 Fibonacci -Serie bis zu 10 Begriffe :: 0 1 1 2 3 5 8 13 21 34

Laden Sie Fibonacci herunter.Sch

Sie kennen die Tatsache, dass Computer nur im binären Format versteht, ich.e., ''0' Und '1'Und die meisten von uns haben es genossen, die Bekehrung von zu lernen Dezimal Zu Binär. Wie wäre es mit einem einfachen Skript für diesen komplexen Operation.

Skript 2: Decimal2Binary.Sch
#!/bin/bash für ((i = 32; i> = 0; i--)); do r = $ ((2 ** $ i)) Wahrscheinlichkeit+= ($ r) erledigt [[$# -Eq 0]] & echo -en "Decimal \ t \ tbary \ n" für Input_int in [E -Mail -geschützt]; do = 0 testen $ #input_int -gt 11 & printf "%-10s \ t" "$ input_int" für n in $ probableity [@]; do if [[$ input_int -lt $ n]]; dann [[$ s = 1]] && printf "%d" 0 sonst printf "%d" 1; s = 1 input_int = $ (($ input_int - $ n)) fi Done Echo -e
Probenausgabe
[[E -Mail geschützt] ~]# Chmod 755 Decimal2Binary.SH [[E -Mail geschützt] ~]# ./Decimal2Binary.SH 1121 Dezimaler binär 1121 10001100001

Notiz: Das obige Skript akzeptiert Eingaben zur Laufzeit, was offensichtlich eine Hilfe ist.

Download Decimal2Binary.Sch

Nun, der Eingebaute 'BC'Befehl kann a konvertieren Dezimal Zu binär in einem Skript der einzelnen Zeile. Laufen Sie in Ihrem Terminal.

[[E -Mail geschützt] ~]# echo "obase = 2; num" | BC

Ersetzen 'Num'Mit der Nummer, aus der Sie konvertieren möchten Dezimal Zu Binär. Zum Beispiel,

[[E -Mail geschützt] ~]# echo "obase = 2; 121" | BC 1111001

Als nächstes werden wir ein Skript schreiben, das gleich entgegengesetzt vom obigen Skript fungiert, Binärwerte konvertieren Zu Dezimal.

Skript 3: Binary2Decimal.Sch
#!/bin/bash echo "Geben [$ Binary -ne 0] do rem = $ (expr $ $ binary % 10) decimal = $ ((decimal+(rem*power))) power = $ ((power*2)) binary = $ (expr $ $ binary / 10 ) Echo "$ decimal" erledigt fi
Probenausgabe
[[E -Mail geschützt] ~]# Chmod 755 Binary2Decimal.SH [[E -Mail geschützt] ~]# ./Binary2Decimal.SH Geben Sie eine Nummer ein: 11 3

Notiz: Die obige Funktion kann im Terminal mit 'durchgeführt werdenBC'Befehl as.

[[E -Mail geschützt] ~]# echo "ibase = 2; binär" | BC

Ersetzen 'BINÄR'Mit der Binärzahl, nämlich.,

[[E -Mail geschützt] ~]# echo "ibase = 2; 11010101" | BC 213

Laden Sie Binary2Decimal herunter.Sch

In ähnlicher Weise können Sie Conversion von schreiben Oktal, hexadezimal Zu Dezimal Und umgekehrt selbst. Erreichen des obigen Ergebniss zum Terminal mit ''BC'Befehl ist.

Dezimaler zu Oktal
[[E -Mail geschützt] ~]# echo "obase = 8; decimal" | BC
Dezimales zu Hexadezimal
[[E -Mail geschützt] ~]# echo "obase = 16; decimal" | BC
Oktal bis Dezimal
[[E -Mail geschützt] ~]# echo "ibase = 8; Octal" | BC
Hexadezimal zu dezimal
[[E -Mail geschützt] ~]# echo "ibase = 16; hexadezimal" | BC
Binär zu Oktal
[[E -Mail geschützt] ~]# echo "ibase = 2; obase = 8 binär" | BC

Einige der Gemeinsame numerische Tests, die in der Shell -Skriptsprache mit Beschreibung verwendet werden, ist.

Test: Integer1 -eq Integer2 Bedeutung: Integer1 ist gleich integer2
Test: Integer1 -ge Integer2 Bedeutung: Integer1 ist größer als oder gleich integer2
Test: Integer1 -Gt Integer2 Bedeutung: Integer1 ist größer als Integer2
Test: Integer1 -le Integer2 Bedeutung: Integer1 ist kleiner als oder gleich integer2
Test: Integer1 -lt Integer2 Bedeutung: Integer1 ist weniger als Integer2
Test: Integer1 -ne Integer2 Bedeutung: Integer1 ist nicht gleich integer2

Das ist alles für diesen Artikel und die Artikelserie. Dies ist der letzte Artikel von Shell Skript -Serie Und es bedeutet nicht, dass kein Artikel über Skriptsprache wieder hier sein wird. Es bedeutet nur, dass das Shell -Skript -Tutorial vorbei ist und wenn wir ein interessantes Thema finden, das es wert ist, zu wissen oder eine Frage von Ihnen Hier.

Bleiben Sie gesund, abgestimmt und verbunden mit Tecmint. Sehr bald werde ich mit einem weiteren interessanten Thema kommen, ihr Leute werden es lieben zu lesen. Teilen Sie Ihre wertvollen Gedanken in Kommentarbereich.