⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arith.tests

📁 android-w.song.android.widget
💻 TESTS
字号:
set +o posixdeclare -i iv jviv=$(( 3 + 5 * 32 ))echo $iviv=iv+3echo $iviv=2jv=ivlet "jv *= 2"echo $jvjv=$(( $jv << 2 ))echo $jvlet jv="$jv / 2"echo $jvjv="jv >> 2"echo $jviv=$((iv+ $jv))echo $ivecho $((iv -= jv))echo $ivecho $(( iv == jv ))echo $(( iv != $jv ))echo $(( iv < jv ))echo $(( $iv > $jv ))echo $(( iv <= $jv ))echo $(( $iv >= jv ))echo $jvecho $(( ~$jv ))echo $(( ~1 ))echo $(( ! 0 ))echo $(( jv % 2 ))echo $(( $iv % 4 ))echo $(( iv <<= 16 ))echo $(( iv %= 33 ))echo $(( 33 & 55 ))echo $(( 33 | 17 ))echo $(( iv && $jv ))echo $(( $iv || jv ))echo $(( iv && 0 ))echo $(( iv & 0 ))echo $(( iv && 1 ))echo $(( iv & 1 ))echo $(( $jv || 0 ))echo $(( jv | 0 ))echo $(( jv | 1 ))echo $(( $jv || 1 ))let 'iv *= jv'echo $ivecho $jvlet "jv += $iv"echo $jvecho $(( jv /= iv ))echo $(( jv <<= 8 ))echo $(( jv >>= 4 ))echo $(( iv |= 4 ))echo $(( iv &= 4 ))echo $(( iv += (jv + 9)))echo $(( (iv + 4) % 7 ))# unary plus, minusecho $(( +4 - 8 ))echo $(( -4 + 8 ))# conditional expressionsecho $(( 4<5 ? 1 : 32))echo $(( 4>5 ? 1 : 32))echo $(( 4>(2+3) ? 1 : 32))echo $(( 4<(2+3) ? 1 : 32))echo $(( (2+2)<(2+3) ? 1 : 32))echo $(( (2+2)>(2+3) ? 1 : 32))# bug in bash versions through bash-3.2S=105W=$((S>99?4:S>9?3:S>0?2:0))echo $Wunset W S# check that the unevaluated part of the ternary operator does not do# evaluation or assignmentx=i+=2y=j+=2declare -i i=1 j=1echo $((1 ? 20 : (x+=2)))echo $i,$xecho $((0 ? (y+=2) : 30))echo $j,$yx=i+=2y=j+=2declare -i i=1 j=1echo $((1 ? 20 : (x+=2)))echo $i,$xecho $((0 ? (y+=2) : 30))echo $i,$y# check precedence of assignment vs. conditional operator# should be an errordeclare -i x=2y=$((1 ? 20 : x+=2))# check precedence of assignment vs. conditional operatordeclare -i x=2echo $((0 ? x+=2 : 20))# associativity of assignment-operator operatordeclare -i i=1 j=2 k=3echo $((i += j += k))echo $i,$j,$k# octal, hexecho $(( 0x100 | 007 ))echo $(( 0xff ))echo $(( 16#ff ))echo $(( 16#FF/2 ))echo $(( 8#44 ))echo $(( 8 ^ 32 ))# other basesecho $(( 16#a ))echo $(( 32#a ))echo $(( 56#a ))echo $(( 64#a ))echo $(( 16#A ))echo $(( 32#A ))echo $(( 56#A ))echo $(( 64#A ))echo $(( 64#@ ))echo $(( 64#_ ))# weird basesecho $(( 3425#56 ))# missing number after baseecho $(( 2# ))# these should generate errorsecho $(( 7 = 43 ))echo $(( 2#44 ))echo $(( 44 / 0 ))let 'jv += $iv'echo $(( jv += \$iv ))let 'rv = 7 + (43 * 6'# more errorsdeclare -i ii=0#4i=2#110#11((echo abc; echo def;); echo ghi)if (((4+4) + (4 + 7))); then	echo okfi(())	# make sure the null expression works OKa=(0 2 4 6)echo $(( a[1] + a[2] ))echo $(( (a[1] + a[2]) == a[3] ))(( (a[1] + a[2]) == a[3] )) ; echo $?# test pushing and popping the expression stackunset AA="4 + "echo $(( ( 4 + A ) + 4 ))A="3 + 5"echo $(( ( 4 + A ) + 4 ))# badly-formed conditional expressionsecho $(( 4 ? : $A ))echo $(( 1 ? 20 ))echo $(( 4 ? 20 : ))# precedence and short-circuit evaluationB=9echo $Becho $(( 0 && B=42 ))echo $Becho $(( 1 || B=88 ))echo $Becho $(( 0 && (B=42) ))echo $Becho $(( (${$} - $$) && (B=42) ))echo $Becho $(( 1 || (B=88) ))echo $B# until command with (( )) commandx=7echo $xuntil (( x == 4 ))do	echo $x	x=4doneecho $x# exponentiationecho $(( 2**15 - 1))echo $(( 2**(16-1)))echo $(( 2**16*2 ))echo $(( 2**31-1))echo $(( 2**0 ))# {pre,post}-{inc,dec}rement and associated errorsx=4echo $xecho $(( x++ ))echo $xecho $(( x-- ))echo $xecho $(( --x ))echo $xecho $(( ++x ))echo $xecho $(( ++7 ))echo $(( 7-- ))echo $(( --x=7 ))echo $(( ++x=7 ))echo $(( x++=7 ))echo $(( x--=7 ))echo $xecho $(( +7 ))echo $(( -7 ))echo $(( ++7 ))echo $(( --7 ))${THIS_SH} ./arith1.sub${THIS_SH} ./arith2.sub${THIS_SH} ./arith3.sub${THIS_SH} ./arith4.sub# make sure arithmetic expansion handles ints > 2**31 - 1 using intmax_techo $(( 2147483645 + 4 ))x=4y=7(( x=8 , y=12 ))echo $x $y# should be an error(( x=9 y=41 ))# These are errorsunset becho $((a b))((a b))n=42printf "%d\n" $nprintf "%i\n" $necho $(( 8#$(printf "%o\n" $n) ))printf "%u\n" $necho $(( 16#$(printf "%x\n" $n) ))echo $(( 16#$(printf "%X\n" $n) ))# causes longjmp botches through bash-2.05ba[b[c]d]=e

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -