Einführung
Die Linux-Befehlszeile bietet leistungsstarke Tools für die Durchführung von arithmetischen Berechnungen. Einer der vielseitigsten Taschenrechner in Linux ist bc (Basic Calculator), der es Benutzern ermöglicht, sowohl einfache als auch komplexe mathematische Operationen direkt aus der Kommandozeile auszuführen.
In diesem Lab lernen Sie, wie Sie den bc-Befehl verwenden, um verschiedene arithmetische Berechnungen in Linux durchzuführen. Sie beginnen mit einfachen Operationen und gehen schrittweise zu komplexeren Ausdrücken über. Die von Ihnen erlernten Fähigkeiten werden nützlich sein für das Schreiben von Skripten, die Datenverarbeitung und die effiziente Lösung von Rechenproblemen in einer Linux-Umgebung.
Am Ende dieses Labs können Sie:
- Einfache arithmetische Operationen mit
bcdurchführen - Komplexe mathematische Ausdrücke mit mehreren Operationen verarbeiten
- Variablen verwenden und die Genauigkeit von Berechnungen steuern
- Skripts erstellen, die mathematische Berechnungen automatisieren
Beginnen wir mit der Erkundung der Möglichkeiten des Linux-bc-Taschenrechners.
Grundlegende Arithmetik mit bc
In diesem Schritt lernen wir, wie man den bc-Befehl für grundlegende arithmetische Operationen in Linux verwendet. Der bc-Befehl ist ein leistungsstarkes Rechenwerkzeug, das es Ihnen ermöglicht, Berechnungen direkt aus der Kommandozeile auszuführen.
Installation von bc
Zunächst stellen wir sicher, dass der bc-Rechner auf Ihrem System installiert ist:
sudo apt-get update
sudo apt-get install -y bc
Sie sollten eine Ausgabe sehen, die den Installationsprozess anzeigt. Nach der Installation können Sie überprüfen, ob es funktioniert, indem Sie Folgendes eingeben:
bc --version
Sie sollten Versionsinformationen für den bc-Rechner sehen.
Erstellen eines einfachen Additions-Skripts
Jetzt erstellen wir ein einfaches Skript, um eine Addition mit bc durchzuführen:
- Navigieren Sie in das Projektverzeichnis:
cd ~/project
- Erstellen Sie eine neue Skriptdatei namens
simple_calc.sh:
touch simple_calc.sh
- Öffnen Sie die Datei mit dem nano-Editor:
nano simple_calc.sh
- Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh
## Simple addition using bc
echo "20 + 5" | bc
Speichern Sie die Datei, indem Sie
Strg+Odrücken, dannEnter, und verlassen Sie nano mitStrg+X.Machen Sie das Skript ausführbar:
chmod +x simple_calc.sh
- Führen Sie das Skript aus:
./simple_calc.sh
Sie sollten die folgende Ausgabe sehen:
25
Dies zeigt, wie bc den Ausdruck "20 + 5" als Eingabe nimmt und das Ergebnis 25 liefert.
Funktionsweise von bc verstehen
Der bc-Befehl ist ein auf Pipelines orientierter Rechner. Wir verwenden das Pipe-Symbol (|), um Ausdrücke an bc zur Auswertung zu senden. Die grundlegende Syntax lautet:
echo "expression" | bc
Sie können auch andere grundlegende Operationen ausprobieren:
echo "10 - 3" | bc ## Subtraction
echo "4 * 6" | bc ## Multiplication
echo "15 / 3" | bc ## Division
Führen Sie diese Befehle in Ihrer Kommandozeile aus, um die Ergebnisse zu sehen:
echo "10 - 3" | bc
echo "4 * 6" | bc
echo "15 / 3" | bc
Die Ausgabe sollte sein:
7
24
5
Gleitkomma-Berechnungen mit bc
In diesem Schritt lernen wir, wie man Gleitkomma-Berechnungen mit dem bc-Rechner durchführt. Standardmäßig führt bc Ganzzahlarithmetik durch, aber wir können den scale-Parameter verwenden, um die Dezimalpräzision zu steuern.
Der scale-Parameter verstehen
Der scale-Parameter in bc bestimmt die Anzahl der Dezimalstellen, die bei Berechnungen verwendet werden. Sehen wir uns an, wie er funktioniert:
- Versuchen Sie diesen Befehl, um eine Division ohne Einstellung des
scale-Parameters durchzuführen:
echo "5 / 2" | bc
Die Ausgabe wird sein:
2
Beachten Sie, dass das Ergebnis auf eine Ganzzahl abgeschnitten wird, nicht gerundet.
- Jetzt setzen wir einen
scale-Wert, um ein genaueres Ergebnis zu erhalten:
echo "scale=2; 5 / 2" | bc
Die Ausgabe wird sein:
2.50
scale=2 sagt bc, dass das Ergebnis mit 2 Dezimalstellen berechnet werden soll.
Erstellen eines Skripts für komplexe Berechnungen
Erstellen wir ein Skript, das die Verwendung von scale demonstriert und komplexere Berechnungen durchführt:
- Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
- Erstellen Sie eine neue Skriptdatei namens
complex_calc.sh:
touch complex_calc.sh
- Öffnen Sie die Datei mit dem nano-Editor:
nano complex_calc.sh
- Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh
## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"
Dieses Skript:
- Setzt die Dezimalpräzision auf 2 Stellen.
- Führt eine Multiplikation durch: 10.5 * 4.2
- Führt eine Division durch: 5.5 / 2
- Berechnet eine Potenz: 3^2 (3 hoch 2)
- Kombiniert diese Operationen mit Addition und Subtraktion
- Speichert das Ergebnis in einer Variablen namens
result - Gibt das Ergebnis mit einer beschreibenden Bezeichnung aus
Speichern Sie die Datei, indem Sie
Strg+Odrücken, dannEnter, und verlassen Sie nano mitStrg+X.Machen Sie das Skript ausführbar:
chmod +x complex_calc.sh
- Führen Sie das Skript aus:
./complex_calc.sh
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Result: 46.35
Lassen Sie uns die Berechnung analysieren:
- 10.5 * 4.2 = 44.1
- 5.5 / 2 = 2.75
- 3^2 = 9
- 44.1 - 2.75 + 9 = 50.35
Warten Sie, das erwartete Ergebnis sollte 50.35 sein, aber wir haben 46.35 erhalten. Dies liegt daran, dass die Berechnung im Skript korrigiert werden muss. Lassen Sie uns es beheben:
nano complex_calc.sh
Aktualisieren Sie die Berechnung:
#!/bin/zsh
## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"
## Breaking down the calculation
part1=$(echo "scale=2; 10.5 * 4.2" | bc)
part2=$(echo "scale=2; 5.5 / 2" | bc)
part3=$(echo "3^2" | bc)
echo "Part 1 (10.5 * 4.2): $part1"
echo "Part 2 (5.5 / 2): $part2"
echo "Part 3 (3^2): $part3"
echo "Final: $part1 - $part2 + $part3 = $(echo "scale=2; $part1 - $part2 + $part3" | bc)"
Speichern Sie die Änderungen und führen Sie das Skript erneut aus:
./complex_calc.sh
Dieses aktualisierte Skript zeigt die Aufteilung jeder Teilberechnung an, was es einfacher macht, zu verstehen, wie das endgültige Ergebnis erhalten wird.
Arbeiten mit Variablen in bc
In diesem Schritt lernen wir, wie man Variablen in bc verwendet, um unsere Berechnungen flexibler und leistungsfähiger zu gestalten. Der bc-Rechner ermöglicht es uns, Variablen zu definieren und sie in mehreren Berechnungen wiederzuverwenden.
Interaktive Verwendung von Variablen in bc
Zunächst untersuchen wir, wie man Variablen direkt im interaktiven Modus von bc verwendet:
- Starten Sie den
bc-Rechner im interaktiven Modus:
bc
- Definieren Sie eine Variable und führen Sie Berechnungen damit aus:
x = 10
x + 5
x * 2
Sie sollten sehen:
15
20
- Sie können mehrere Variablen definieren und gemeinsam verwenden:
y = 7
x + y
x * y
Die Ausgabe wird sein:
17
70
- Beenden Sie den interaktiven Modus, indem Sie
Strg+Ddrücken oderquiteingeben.
Erstellen eines Skripts mit bc-Variablen
Jetzt erstellen wir ein Skript, das die Verwendung von Variablen in bc-Berechnungen demonstriert:
- Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
- Erstellen Sie eine neue Skriptdatei namens
variable_calc.sh:
touch variable_calc.sh
- Öffnen Sie die Datei mit dem nano-Editor:
nano variable_calc.sh
- Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh
## Script to demonstrate using variables in bc
## Define input values
radius=5
height=10
## Calculate cylinder volume (π * r² * h)
volume=$(echo "scale=2; 3.14159 * $radius * $radius * $height" | bc)
## Calculate cylinder surface area (2π * r² + 2π * r * h)
surface_area=$(echo "scale=2; 2 * 3.14159 * $radius * $radius + 2 * 3.14159 * $radius * $height" | bc)
## Display results
echo "Cylinder properties with radius $radius and height $height:"
echo "Volume: $volume cubic units"
echo "Surface Area: $surface_area square units"
Dieses Skript:
- Definiert Variablen für den Radius und die Höhe eines Zylinders
- Berechnet das Volumen mithilfe der Formel π r² h
- Berechnet die Oberfläche mithilfe der Formel 2π r² + 2π r * h
- Zeigt die Ergebnisse mit entsprechenden Einheiten an
Speichern Sie die Datei, indem Sie
Strg+Odrücken, dannEnter, und verlassen Sie nano mitStrg+X.Machen Sie das Skript ausführbar:
chmod +x variable_calc.sh
- Führen Sie das Skript aus:
./variable_calc.sh
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Cylinder properties with radius 5 and height 10:
Volume: 785.39 cubic units
Surface Area: 471.23 square units
Verwendung von Variablen innerhalb von bc
Wir können auch Variablen vollständig innerhalb von bc definieren und verwenden, indem wir einen mehrzeiligen Ansatz verfolgen. Erstellen wir ein weiteres Skript, um dies zu demonstrieren:
- Erstellen Sie eine neue Datei:
nano bc_variables.sh
- Fügen Sie den folgenden Inhalt hinzu:
#!/bin/zsh
## Script to demonstrate using variables within bc
bc << EOF
scale=2
radius = 5
height = 10
pi = 3.14159
## Calculate cylinder volume
volume = pi * radius^2 * height
print "Volume: ", volume, " cubic units\n"
## Calculate cylinder surface area
surface_area = 2 * pi * radius^2 + 2 * pi * radius * height
print "Surface Area: ", surface_area, " square units\n"
EOF
Dieses Skript:
- Nutzt ein "Here-Dokument" (EOF), um mehrere Zeilen an
bczu senden - Definiert alle Variablen innerhalb von
bcselbst - Führt Berechnungen unter Verwendung dieser Variablen aus
- Nutzt den
print-Befehl inbc, um die Ergebnisse anzuzeigen
- Speichern Sie die Datei, machen Sie sie ausführbar und führen Sie sie aus:
chmod +x bc_variables.sh
./bc_variables.sh
Die Ausgabe sollte ähnlich der des vorherigen Skripts sein, zeigt aber einen anderen Ansatz zur Verwendung von Variablen mit bc.
Erstellen eines praktischen bc-Rechner-Skripts
In diesem letzten Schritt werden wir ein praktischeres Rechner-Skript erstellen, das alle Konzepte zusammenführt, die wir gelernt haben. Dieses Skript ermöglicht es Benutzern, verschiedene Berechnungen durchzuführen, indem sie Optionen aus einem Menü auswählen.
Aufbau eines interaktiven Rechners
Erstellen wir ein Skript, das als interaktiver Rechner fungiert:
- Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
- Erstellen Sie eine neue Skriptdatei namens
calculator.sh:
touch calculator.sh
- Öffnen Sie die Datei mit dem nano-Editor:
nano calculator.sh
- Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh
## Interactive calculator script using bc
## Function to calculate area of a circle
calculate_circle_area() {
echo -n "Enter the radius of the circle: "
read radius
area=$(echo "scale=2; 3.14159 * $radius * $radius" | bc)
echo "The area of the circle with radius $radius is: $area square units"
}
## Function to calculate area of a rectangle
calculate_rectangle_area() {
echo -n "Enter the length of the rectangle: "
read length
echo -n "Enter the width of the rectangle: "
read width
area=$(echo "scale=2; $length * $width" | bc)
echo "The area of the rectangle with length $length and width $width is: $area square units"
}
## Function to solve quadratic equation ax² + bx + c = 0
solve_quadratic() {
echo -n "Enter coefficient a: "
read a
echo -n "Enter coefficient b: "
read b
echo -n "Enter coefficient c: "
read c
## Calculate discriminant
discriminant=$(echo "scale=4; ($b * $b) - (4 * $a * $c)" | bc)
## Check the discriminant
if (($(echo "$discriminant < 0" | bc -l))); then
echo "The equation has no real solutions (discriminant < 0)"
elif (($(echo "$discriminant == 0" | bc -l))); then
## One solution
x=$(echo "scale=4; -$b / (2 * $a)" | bc)
echo "The equation has one solution: x = $x"
else
## Two solutions
x1=$(echo "scale=4; (-$b + sqrt($discriminant)) / (2 * $a)" | bc -l)
x2=$(echo "scale=4; (-$b - sqrt($discriminant)) / (2 * $a)" | bc -l)
echo "The equation has two solutions:"
echo "x1 = $x1"
echo "x2 = $x2"
fi
}
## Main program loop
while true; do
echo ""
echo "===== BC Calculator Menu ====="
echo "1. Calculate area of a circle"
echo "2. Calculate area of a rectangle"
echo "3. Solve quadratic equation (ax² + bx + c = 0)"
echo "4. Exit"
echo ""
echo -n "Enter your choice (1-4): "
read choice
case $choice in
1) calculate_circle_area ;;
2) calculate_rectangle_area ;;
3) solve_quadratic ;;
4)
echo "Exiting calculator. Goodbye!"
exit 0
;;
*) echo "Invalid option. Please try again." ;;
esac
done
Dieses Skript:
- Definiert Funktionen für verschiedene Arten von Berechnungen
- Bietet eine Menüoberfläche, damit der Benutzer die gewünschte Berechnung auswählen kann
- Nutzt
bcfür alle mathematischen Operationen - Behandelt komplexere mathematische Formeln wie die quadratische Gleichung
Speichern Sie die Datei, indem Sie
Strg+Odrücken, dannEnter, und verlassen Sie nano mitStrg+X.Machen Sie das Skript ausführbar:
chmod +x calculator.sh
- Führen Sie das Rechner-Skript aus:
./calculator.sh
- Versuchen Sie jede Option im Menü:
- Wählen Sie Option 1 und geben Sie einen Radius ein, um die Fläche eines Kreises zu berechnen
- Wählen Sie Option 2 und geben Sie Länge und Breite ein, um die Fläche eines Rechtecks zu berechnen
- Wählen Sie Option 3 und geben Sie die Koeffizienten ein, um eine quadratische Gleichung zu lösen (versuchen Sie a=1, b=5, c=6)
- Wählen Sie Option 4, um den Rechner zu beenden
Beispielsweise sollten Sie, wenn Sie Option 3 wählen und a=1, b=5, c=6 eingeben, eine Ausgabe ähnlich der folgenden sehen:
The equation has two solutions:
x1 = -2.0000
x2 = -3.0000
Dieses interaktive Skript zeigt, wie bc in komplexere Programme integriert werden kann, um eine Vielzahl von mathematischen Problemen zu lösen.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie den Befehlszeilen-Rechner bc in Linux verwenden, um verschiedene arithmetische Operationen durchzuführen.
Hier ist eine Zusammenfassung dessen, was Sie erreicht haben:
Grundlegende arithmetische Operationen:
- Sie haben den
bc-Rechner installiert und verifiziert. - Sie haben ein einfaches Skript erstellt, um Additionen durchzuführen.
- Sie haben gelernt, wie Sie den Pipe-Operator verwenden, um Ausdrücke an
bczu senden. - Sie haben grundlegende Operationen wie Addition, Subtraktion, Multiplikation und Division geübt.
- Sie haben den
Fließkomma-Berechnungen:
- Sie haben den
scale-Parameter verwendet, um die Dezimalpräzision zu steuern. - Sie haben ein Skript für komplexere Berechnungen mit mehreren Operationen erstellt.
- Sie haben die Reihenfolge der Operationen verstanden und gelernt, wie Sie Klammern verwenden, um den Berechnungsfluss zu steuern.
- Sie haben den
Arbeiten mit Variablen:
- Sie haben Shell-Variablen in
bc-Berechnungen verwendet. - Sie haben den interaktiven Modus von
bczur Definition und Verwendung von Variablen erkundet. - Sie haben Skripte erstellt, die Variablen für flexiblere Berechnungen nutzen.
- Sie haben gelernt, wie Sie "Here-Dokumente" für mehrzeilige
bc-Operationen verwenden.
- Sie haben Shell-Variablen in
Praktische Anwendungen:
- Sie haben ein interaktives Rechner-Skript mit einer Menüoberfläche erstellt.
- Sie haben gängige geometrische Berechnungen implementiert.
- Sie haben komplexere Gleichungen wie quadratische Formeln gelöst.
- Sie haben alle gelernten Konzepte in einer nützlichen Anwendung kombiniert.
Diese Fähigkeiten ermöglichen es Ihnen, mathematische Operationen effizient in der Linux-Befehlszeile durchzuführen und Berechnungen in Ihren Skripten zu automatisieren. Der bc-Rechner ist ein leistungsfähiges Werkzeug, das alles von einfacher Arithmetik bis hin zu komplexen mathematischen Formeln bewältigen kann. Dies macht es zu einem essentiellen Hilfsmittel für Systemadministratoren, Entwickler und Datenanalysten, die in einer Linux-Umgebung arbeiten.
Wenn Sie weiterhin mit Linux arbeiten, werden Sie feststellen, dass die Kombination von Befehlszeilen-Tools wie bc mit Shell-Skripting Ihnen hilft, eine Vielzahl von Problemen effizienter zu lösen.



