Chet Ramey | ac50fba | 2014-02-26 09:36:43 -0500 | [diff] [blame] | 1 | intmax_max=$((2**63 - 1)) |
| 2 | intmax_min1=$((2**63)) |
| 3 | intmax_min2=$((-2**63)) |
| 4 | |
| 5 | case $intmax_max in |
| 6 | 9223372036854775807) ;; |
| 7 | *) echo "warning: your machine does not support 64-bit arithmetic using intmax_t" 2>&1 ;; |
| 8 | esac |
| 9 | |
| 10 | # these are actually the same |
| 11 | echo $(( $intmax_min1 % -1 )) |
| 12 | echo $(( $intmax_min2 % -1 )) |
| 13 | |
| 14 | echo $(( $intmax_max % -1 )) |
| 15 | |
| 16 | lvalue=$intmax_min1 |
| 17 | (( lvalue%= -1 )) |
| 18 | echo $lvalue |
| 19 | |
| 20 | lvalue=$intmax_min2 |
| 21 | (( lvalue%= -1 )) |
| 22 | echo $lvalue |
| 23 | |
| 24 | lvalue=$intmax_max |
| 25 | (( lvalue%= -1 )) |
| 26 | echo $lvalue |
| 27 | |
| 28 | # and these |
| 29 | echo $(( $intmax_min1 / -1 )) |
| 30 | echo $(( $intmax_min2 / -1 )) |
| 31 | |
| 32 | lvalue=$intmax_min1 |
| 33 | (( lvalue /= -1 )) |
| 34 | echo $lvalue |
| 35 | |
| 36 | lvalue=$intmax_min2 |
| 37 | (( lvalue /= -1 )) |
| 38 | echo $lvalue |
| 39 | |
| 40 | echo $(( $intmax_min1 * -1 )) |
| 41 | echo $(( $intmax_min2 * -1 )) |
| 42 | |
| 43 | lvalue=$intmax_min1 |
| 44 | (( lvalue *= -1 )) |
| 45 | echo $lvalue |
| 46 | |
| 47 | lvalue=$intmax_min2 |
| 48 | (( lvalue *= -1 )) |
| 49 | echo $lvalue |
| 50 | |
| 51 | echo $(( -${intmax_min1} )) |
| 52 | echo $(( -${intmax_min2} )) |
| 53 | |
| 54 | foo1=$(( $intmax_max - 2 )) |
| 55 | |
| 56 | eval echo \{${foo1}..${intmax_max}\} |