Ten tag jest przeznaczony do wszystkiego, co ma związek z operacjami matematycznymi. Więc jeśli chcesz zadać pytanie o wykonywanie obliczeń w `awk` lub jeśli masz pytanie o` bc`, to jest to właściwy tag.
Użycie echo "20+5"dosłownie tworzy tekst „ 20+5”. Jakiego polecenia mogę użyć 25w tym przypadku do uzyskania sumy liczbowej ? Jaki jest najłatwiejszy sposób, aby to zrobić, używając bash jako zmiennoprzecinkowego? Na przykład echo $((3224/3807.0))drukuje 0:(. Szukam odpowiedzi za pomocą samej podstawowej powłoki poleceń („wiersza polecenia”) lub za pomocą języków dostępnych …
Mam listę liczb w pliku, po jednym w wierszu. Jak mogę uzyskać wartości minimalną, maksymalną, medianę i średnią ? Chcę użyć wyników w skrypcie bash. Chociaż moja bezpośrednia sytuacja dotyczy liczb całkowitych, rozwiązanie dla liczb zmiennoprzecinkowych byłoby przydatne wzdłuż linii, ale prosta metoda na liczbach całkowitych jest w porządku.
expr wydaje się nie lubić nawiasów (używanych w matematyce do jawnego priorytetu operatora): expr 3 * (2 + 1) bash: syntax error near unexpected token `(' Jak wyrazić priorytet operatora w bash?
Robię porównanie liczb całkowitych w bash (próbuję sprawdzić, czy użytkownik działa jako root) i znalazłem dwa różne sposoby: Podwójna równość: if [ $UID == 0 ] then fi -eq if [ $UID -eq 0 ] then fi Rozumiem, że nie ma> = lub <= w bash, tylko -ge i -le, …
Kiedy używam następujących, otrzymuję wynik zgodnie z oczekiwaniami: $ echo {8..10} 8 9 10 Jak w łatwy sposób użyć tego rozszerzenia nawiasu klamrowego, aby uzyskać następujące wyniki? $ echo {8..10} 08 09 10 Teraz mogę to uzyskać za pomocą seq(nie próbowałem), ale nie tego szukam. Przydatne informacje mogą być takie, …
Mam to: date +"%H hours and %M minutes" Używam festiwalu, żeby to powiedzieć… ale brzmi: „zero dziewięciu godzin” .. Chcę, żeby powiedział „dziewięć godzin”! ale data zawsze daje mi 09 ... więc zastanawiam się, czy bash może sprawić, że stanie się to tylko 9? w złożonym skrypcie, który próbowałem printf …
Wydaje się, że $[expr]wykonuje rozszerzenie arytmetyczne tak jak $((expr)). Ale nie mogę znaleźć żadnej wzmianki $[w podręczniku bash. To polecenie nie daje wyników: gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\[' Co to jest ten operator i czy jego zachowanie jest znormalizowane gdziekolwiek? Moja wersja bash: GNU bash, wersja 3.2.51 (1) …
Czasami muszę podzielić jedną liczbę na drugą. Byłoby wspaniale, gdybym mógł po prostu zdefiniować funkcję bash. Do tej pory jestem zmuszony używać takich wyrażeń jak echo 'scale=25;65320/670' | bc ale byłoby świetnie, gdybym mógł zdefiniować funkcję .bashrc, która wyglądałaby divide () { bc -d $1 / $2 }
Piszę skrypt powłoki dla systemu Linux, używając Bash, aby przetłumaczyć dowolny plik wideo na MP4. Do tego używam avconvz libvorbisdźwiękiem. Wewnątrz mojego skryptu mam pytanie do użytkownika: read -p "- Audio Quality [scale from -2 to 10] ? " if [ -n "$REPLY" ] ; then ABITRATE="-aq $REPLY" fi Mój …
Czy istnieje sposób na stworzenie z powietrza, pliku, który jest sekwencją liczb, zaczynając od podanej liczby, po jednej w wierszu? coś jak magic_command start 100 lines 5 > b.txt i wtedy b.txtbyłoby 100 101 102 103 104
Chcę kumulować rozmiar linii wielu plików zawartych w folderze. Napisałem następujący skrypt: let a=0 let num=0 for i in folder/* do num=`cat $i | wc -l` a=$a+$num done echo $a To, co otrzymuję na końcu skryptu, to 123 + 234 + 432 + ... a nie wynik operacji arytmetycznej dodawania.
Chcę porównać dwie liczby zmiennoprzecinkowe w skrypcie powłoki. Poniższy kod nie działa: #!/bin/bash min=12.45 val=10.35 if (( $val < $min )) ; then min=$val fi echo $min
Mam kontekst, w którym muszę przekonwertować dane binarne na szesnastkowe i dziesiętne oraz odwrotnie w skrypcie powłoki. Czy ktoś może zasugerować mi narzędzie do tego?
W Bash dwie liczby całkowite można porównać za pomocą wyrażenia warunkowego arg1 OP arg2 PO jest jednym -eq, -ne, -lt, -le, -gt, i -ge. Te arytmetyczne operatory binarne zwracają wartość true, jeśli arg1 jest odpowiednio równy, nie równy, mniejszy, mniejszy lub równy, większy niż lub większy niż lub równy arg2 …
Mam skrypt bash, który ustawia -e, więc skrypt zakończy działanie w dowolnym stanie wyjścia! = 0. Próbuję wykonać podstawową arytmetykę powłoki przypisaną do zmiennych, a czasami wyrażenie jest równe 0, co powoduje, że stanem wyjścia komendy let lub expr jest „1”. Oto przykład: #!/bin/bash -ex echo "Test 1" Z=`expr 1 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.