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.
W komentarzu do ostatniego pytania Stéphane Chazelas wspomina, że istnieją arytmetyki podwójnych nawiasów związane z bezpieczeństwem, takie jak: x=$((1-$x)) na większości pocisków. Moje umiejętności Google wydają się zardzewiałe i nic nie mogę znaleźć. Jakie są konsekwencje arytmetyki podwójnych nawiasów dla bezpieczeństwa?
Spróbuj: $ a=0 $ let a++ $ echo $? 1 # Did the world just go mad? $ echo $a 1 # Yes, it did. $ let a++ $ echo $? 0 # We have normality. $ echo $a 2 Porównaj to z: $ b=0 $ let b+=1 $ echo …
To pytanie dotyczące eksploracji, co oznacza, że nie jestem całkowicie pewien, o co chodzi w tym pytaniu, ale myślę, że chodzi o największą liczbę całkowitą w Bash. W każdym razie zdefiniuję to pozornie. $ echo $((1<<8)) 256 Tworzę liczbę całkowitą, przesuwając nieco. Jak daleko mogę się posunąć? $ echo $((1<<80000)) …
Dane 1 \begin{document} 3 Kod #!/bin/bash function getStart { local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)" echo $START } START2=$(getStart) echo $START2 która wraca, 2ale chcę 3. Bezskutecznie zmieniam koniec odpowiedzią dotyczącą tego, jak mogę dodawać liczby w skrypcie bash : START2=$((getStart+1)) Jak można zwiększyć lokalną zmienną w skrypcie …
Chcę wiedzieć, ile czasu zajmie seria procesów na moim komputerze, aby zdecydować, czy mam tam działać, czy na silniejszym komputerze. Więc prognozuję czas działania każdego polecenia. Dane wyjściowe wyglądają następująco: process1 00:03:34 process2 00:00:35 process3 00:12:34 Jak mogę zsumować drugą kolumnę, aby uzyskać całkowity czas działania? Mógłbym spróbować przepuścić każdą …
Szukam sposobu, aby powiedzieć awk, aby wykonywał arytmetykę o wysokiej precyzji w operacji podstawienia. Polega to na odczytaniu pola z pliku i zastąpieniu go przyrostem o 1% tej wartości. Tracę jednak tam precyzję. Oto uproszczona reprodukcja problemu: $ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {print}' 0.546748 Tutaj mam 16 cyfr …
Jedyny kalkulator, jaki znam bc. Chcę dodać 1do zmiennej i wyprowadzić do innej zmiennej. Mam nextnumzmienną z liczenia łańcucha w pliku: nextnum=`grep -o stringtocount file.tpl.php | wc -w` Powiedzmy, że nextnumwartość jest 1. Po dodaniu z 1, stanie się 2. Aby obliczyć, uruchamiam: rownum=`$nextnum+1 | bc` ale dostał błąd: 1+1: …
Istnieją ograniczenia dotyczące arytmetycznych możliwości oceny bashpowłoki. Podręcznik zwięźle opisuje ten aspekt arytmetyki powłoki, ale stwierdza : Oceny dokonuje się w liczbach całkowitych o stałej szerokości bez sprawdzania przepełnienia, chociaż dzielenie przez 0 jest zatrzymywane i oznaczane jako błąd. Operatory i ich pierwszeństwo, asocjatywność i wartości są takie same jak …
Moim celem jest zweryfikowanie zakresu liczby za pomocą (tylko case+ esac) i wydrukowanie zakresu. Na przykład: Jeśli liczba wynosi od 0 do 80, wydrukuj >=0<=80 Jeśli liczba wynosi od 81 do 100, wydrukuj >=81<=100 itp. Problem z moim skryptem poniżej jest drukowany tylko >=0<=90wtedy, gdy liczba między 0 a 9. …
W zsh: $ echo $((0.1)) 0.10000000000000001 Podczas gdy w innych powłokach z zmiennoprzecinkową interpretacją arytmetyczną: $ ksh93 -c 'echo $((0.1))' 0.1 $ yash -c 'echo $((0.1))' 0.1 Lub awk: $ awk 'BEGIN{print 0.1 + 0}' 0.1 Dlaczego? To kontynuacja dyskusji na czacie
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.