On Thu, Nov 26, 2015 at 06:41:30PM +0900, YAMAMOTO Takashi wrote: > While (surprisingly to me) bash interprets $10 as ${1}0, > many other shells, including NetBSD's /bin/sh, interpret it as ${10}. > > Signed-off-by: YAMAMOTO Takashi <yamam...@midokura.com>
Acked-by: Ben Pfaff <b...@ovn.org> I guess that this is documented in the Autoconf manual, but I had never really paid attention before: '${10}' The 10th, 11th, ... positional parameters can be accessed only after a 'shift'. The 7th Edition shell reported an error if given '${10}', and Solaris 10 '/bin/sh' still acts that way: $ set 1 2 3 4 5 6 7 8 9 10 $ echo ${10} bad substitution Conversely, not all shells obey the Posix rule that when braces are omitted, multiple digits beyond a '$' imply the single-digit positional parameter expansion concatenated with the remaining literal digits. To work around the issue, you must use braces. $ bash -c 'set a b c d e f g h i j; echo $10 ${1}0' a0 a0 $ dash -c 'set a b c d e f g h i j; echo $10 ${1}0' j a0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev