piątek,
Kalkulator bc w potokach
Kalkulator bc
w systemach operacyjnych Unix i Linux jest potężnym narzędziem do obliczeń matematycznych, które można wykorzystać również w potokach. Potok (ang. pipe) pozwala na przekazywanie wyników jednego polecenia jako wejścia do innego, co umożliwia tworzenie bardziej skomplikowanych operacji przetwarzania danych.
Przykłady
Podstawowe obliczenia
Użycie echo
do przekazania równania do bc
:
echo "2 + 3" | bc
Skrypt składający się z wielu linii
Możesz użyć potoku do przekazania całego skryptu do bc
. Na przykład:
echo -e "scale=2\n; 10/3" | bc
scale=2
ustawia dokładność do dwóch miejsc po przecinku;n
oznacza nową linię;10/3
to działanie, które zostanie wykonane.
Wykorzystanie pętli i bc
Możesz użyć pętli for
w powłoce bash, aby wykonać serię obliczeń:
for i in {1..5}; do echo "$i * $i" | bc; done
Ta pętla oblicza i wyświetla kwadraty liczb od 1 do 5.
Złożone wyrażenia
Możesz także używać bardziej złożonych wyrażeń:
echo "scale=4; sqrt(100)" | bc
To polecenie zwróci pierwiastek kwadratowy z 100 z dokładnością do 4 miejsc po przecinku.
Użycie zmiennej z powłoki
Jeśli masz zmienną w powłoce bash, możesz użyć jej w obliczeniach bc
:
number=7
echo "$number^3" | bc
To obliczy siedem do potęgi trzeciej.
Tabliczka mnożenia
Aby stworzyć tabliczkę mnożenia przy użyciu kalkulatora bc
w potokach w powłoce bash, możesz wykorzystać pętle zagnieżdżone. Oto przykład skryptu, jak możesz to zrobić:
#!/bin/bash
for i in {1..10}; do
for j in {1..10}; do
echo -n "$i * $j = "
echo "$i * $j" | bc
done
echo "" # pusta linia oddzielająca kolejne wiersze tabliczki mnożenia
done
W tym skrypcie:
- Pierwsza pętla
for
iteruje przez liczby od 1 do 10, reprezentując pierwszy czynnik mnożenia. - Druga pętla
for
, zagnieżdżona w pierwszej, również iteruje przez liczby od 1 do 10, reprezentując drugi czynnik mnożenia. - W każdej iteracji obu pętli, polecenie
echo "$i * $j"
generuje równanie mnożenia, które jest przekazywane dobc
przez potok. - Wynik każdego obliczenia jest wyświetlany.
- Dodatkowy
echo ""
po zewnętrznej pętli wstawia pustą linię dla lepszej czytelności, oddzielając kolejne wiersze tabliczki mnożenia.
Uruchomienie tego skryptu w terminalu wygeneruje klasyczną tabliczkę mnożenia od 1 do 10.