#!/bin/bash printf "%d %s\n" 10 "foo" printf "%d %s\n" $(10#1) "bar" let "m = 10#$(1:1:2)" echo $m global m := $(10#${1:4:3} + 10#${1:1:3}) echo $m global m := $(10#$(1:4:3)) echo $m global m := $(10#$1) echo $m global m := $(10#1) echo $m global m := $(10) echo $m (CommandList children: [ (C {(printf)} {(DQ ("%d %s") (EscapedLiteralPart token:))} {(10)} {(DQ (foo))}) (C {(printf)} {(DQ ("%d %s") (EscapedLiteralPart token:))} { (ArithSubPart anode: (ArithWord w:{(Lit_Digits 10) (Lit_Pound "#") (Lit_Digits 1)}) spids: [24 29] ) } {(DQ (bar))} ) (C {(let)} { (DQ ("m = 10#") (BracedVarSub token: suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 1)}) length: (ArithWord w:{(Lit_Digits 2)}) ) spids: [40 46] ) ) } ) (C {(echo)} {($ VSub_Name "$m")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w: {(Lit_Digits 10) (Lit_Pound "#") (BracedVarSub token: suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 4)}) length: (ArithWord w:{(Lit_Digits 3)}) ) spids: [58 64] ) } ) right: (ArithWord w: {(Lit_Digits 10) (Lit_Pound "#") (BracedVarSub token: suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 1)}) length: (ArithWord w:{(Lit_Digits 3)}) ) spids: [70 76] ) } ) ) spids: [55 78] ) } spids: [54] ) ] spids: [54] ) (C {(echo)} {($ VSub_Name "$m")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: { (ArithSubPart anode: (ArithWord w: {(Lit_Digits 10) (Lit_Pound "#") (BracedVarSub token: suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 4)}) length: (ArithWord w:{(Lit_Digits 3)}) ) spids: [89 95] ) } ) spids: [86 97] ) } spids: [85] ) ] spids: [85] ) (C {(echo)} {($ VSub_Name "$m")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: { (ArithSubPart anode: (ArithWord w:{(Lit_Digits 10) (Lit_Pound "#") ($ VSub_Number "$1")}) spids: [105 110] ) } spids: [104] ) ] spids: [104] ) (C {(echo)} {($ VSub_Name "$m")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: { (ArithSubPart anode: (ArithWord w:{(Lit_Digits 10) (Lit_Pound "#") (Lit_Digits 1)}) spids: [118 123] ) } spids: [117] ) ] spids: [117] ) (C {(echo)} {($ VSub_Name "$m")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: {(ArithSubPart anode:(ArithWord w:{(Lit_Digits 10)}) spids:[131134])} spids: [130] ) ] spids: [130] ) (C {(echo)} {($ VSub_Name "$m")}) ] )