Należę do tych, którzy zawsze programują skrypty bash rozwiązywać codzienne sytuacje (złamać hasło AP / routera, zautomatyzować procesy itp.).
Przy niektórych okazjach widziałem potrzebę przypisania wartości wyrażenia matematycznego zmiennej lub po prostu pracy z wyrażeniami matematycznymi, tam napotykam problem, że bash i wyrażenia matematyczne, obliczenia nie są zbyt przyjazne. Zdarza się, że bash nie jest podobny do Pythona, co możemy powiedzieć zmienna = 1 + 5/6 (na przykład) w Bash musimy użyć polecenia expr o Tracing
Wyraż, polecenie
Innymi słowy, polecenie expr pomaga nam w rozwiązywaniu wyrażeń matematycznych w terminalu, dzięki czemu możemy obliczyć, czego potrzebujemy. Na przykład, jeśli chcemy, aby pojawił się wynik 1 + 2 * 8/3, wstawiamy w terminalu:
expr 1 + 2 \* 8 / 3
Wynik pojawi się na ekranie. Oto zrzut ekranu z kilkoma przykładami:
W przypadku gdybyśmy chcieli przypisać zmiennej wynik wyrażenia matematycznego (np. 10/2), wyglądałoby to tak:
variable=`expr 10 / 2`
Następnie sprawdzamy to za pomocą:
echo $variable
Polecenie Calc
Ten, w przeciwieństwie do poprzedniego, jest dokładny pod względem liczb dziesiętnych, przykład:
calc 15 / 4
Pokazałoby nam: 3.75
Oto zrzut ekranu z kilkoma przykładami:
Cóż, w zasadzie o tym chciałem ci powiedzieć.
Jednak dla każdego polecenia (szczególnie kalkulator) jest jeszcze kilka innych ciekawych wskazówek, polecam przeczytanie instrukcji:
man calc
man expr
pozdrowienia
Bardzo przydatne, chociaż zdecydowanie nie byłoby dobrze używać Bash do obliczeń matematycznych, liczenia miejsc po przecinku :)
Panie elav, nadal mamy kalkulator basha 🙂 możemy użyć argumentu -l, aby użyć standardowej biblioteki matematycznej
coś w tym stylu
$ echo "(4/8)+(6/9)" | bc -l
1.166666666666666666666666
ha
????
Świetny. W ten sposób unikam kłopotów z instalacją XCalc przy korzystaniu z czystego X11.
Och, nie znałam tego, świetnie !!
Dzięki, to całkiem przydatne 😉
Dzięki ^ _ ^
Dziękuję Ci. Kalkulator systemowy był konkurentem dla podstawowych operacji.
Dzięki za przeczytanie nas 🙂
Dobra wskazówka!
Nie ja gusto