hush/shell/hush_test/hush-vars/param_expand_bash_substr.tests
Stephen Heumann 16cd3c0619 Merge with BusyBox 1.24.0.
There's really only one bug fix in here that should be significant for GNO hush. The other changes should be inconsequential, AFAIK.
2015-10-17 01:10:35 -05:00

84 lines
2.3 KiB
Plaintext
Executable File

# first try some invalid patterns
# do all of these in subshells since it's supposed to error out
export var=0123456789
"$THIS_SH" -c 'echo ${:}'
"$THIS_SH" -c 'echo ${::}'
"$THIS_SH" -c 'echo ${:1}'
"$THIS_SH" -c 'echo ${::1}'
#this also is not valid in bash, but we accept it:
"$THIS_SH" -c 'echo ${var:}'
# then some funky ones
# UNFIXED BUG: this should work: "$THIS_SH" -c 'echo ${?:0}'
# now some valid ones
set --; echo "1 =|${1}|"
set --; echo "1:1 =|${1:1}|"
set --; echo "1:1:2=|${1:1:2}|"
set --; echo "1::2 =|${1::2}|"
set --; echo "1:1: =|${1:1:}|"
set --; echo "1:: =|${1::}|"
set -- 0123; echo "1 =|${1}|"
set -- 0123; echo "1:1 =|${1:1}|"
set -- 0123; echo "1:1:2=|${1:1:2}|"
set -- 0123; echo "1::2 =|${1::2}|"
set -- 0123; echo "1:1: =|${1:1:}|"
set -- 0123; echo "1:: =|${1::}|"
unset f; echo "f =|$f|"
unset f; echo "f:1 =|${f:1}|"
unset f; echo "f:1:2=|${f:1:2}|"
unset f; echo "f::2 =|${f::2}|"
unset f; echo "f:1: =|${f:1:}|"
unset f; echo "f:: =|${f::}|"
f=; echo "f =|$f|"
f=; echo "f:1 =|${f:1}|"
f=; echo "f:1:2=|${f:1:2}|"
f=; echo "f::2 =|${f::2}|"
f=; echo "f:1: =|${f:1:}|"
f=; echo "f:: =|${f::}|"
f=a; echo "f =|$f|"
f=a; echo "f:1 =|${f:1}|"
f=a; echo "f:1:2=|${f:1:2}|"
f=a; echo "f::2 =|${f::2}|"
f=a; echo "f:1: =|${f:1:}|"
f=a; echo "f:: =|${f::}|"
f=0123456789; echo "f =|$f|"
f=0123456789; echo "f:1 =|${f:1}|"
f=0123456789; echo "f:1:2=|${f:1:2}|"
f=0123456789; echo "f::2 =|${f::2}|"
f=0123456789; echo "f:1: =|${f:1:}|"
f=0123456789; echo "f:: =|${f::}|"
echo "Substrings from special vars"
echo '? '"=|$?|"
echo '?:1 '"=|${?:1}|"
echo '?:1:2'"=|${?:1:2}|"
echo '?::2 '"=|${?::2}|"
echo '?:1: '"=|${?:1:}|"
echo '?:: '"=|${?::}|"
set -- 1 2 3 4 5 6 7 8 9 10 11
echo '# '"=|$#|"
echo '#:1 '"=|${#:1}|"
echo '#:1:2'"=|${#:1:2}|"
echo '#::2 '"=|${#::2}|"
echo '#:1: '"=|${#:1:}|"
echo '#:: '"=|${#::}|"
echo "Substrings with expressions"
f=01234567; echo 'f '"=|$f|"
f=01234567; echo 'f:1+1:2+2 '"=|${f:1+1:2+2}|"
f=01234567; echo 'f:-1:2+2 '"=|${f:-1:2+2}|"
f=01234567; echo 'f:1:f '"=|${f:1:f}|"
f=01234567; echo 'f:1:$f '"=|${f:1:$f}|"
f=01234567; echo 'f:1:${f} '"=|${f:1:${f}}|"
f=01234567; echo 'f:1:${f:3:1} '"=|${f:1:${f:3:1}}|"
f=01234567; echo 'f:1:1`echo 1`'"=|${f:1:`echo 1`}|"
echo Done