init version.
[bush.git] / tests.bak / posixexp.tests
blobb5ffae513a3c46d757df2eebe3a5ca21af1b4db4
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 unset a
15 printf "%s\n" ${a:=a\ b}
16 echo "$a"
18 unset v
19 recho ${v=a\ b} x ${v=c\ d}
21 unset v
22 recho "${v=a\ b}" x "${v=c\ d}"
24 unset a v
26 recho "foo ${IFS+'bar'} baz"
27 recho "a ${IFS+b  c} d"
29 recho "a ${IFS+"b  c"} d"
31 u=x
32 recho "foo ${IFS+a$u{{{\}b} c ${IFS+d{}} bar" ${IFS-e{}} baz
34 a=foo
35 recho "${IFS+'$a'}"
36 recho "${IFS+"'$a'"}"
38 recho ${IFS+'$a'}
39 recho ${IFS+"'$a'"}
41 unset a u
42 x='foo*bar'
44 recho "${x##"}"}"
45 recho "${x##'}'}"
46 recho "${x##'}"
48 recho "${x:-'}'}"
50 foo="x'a'y"
51 recho "${foo%*'a'*}"
52 unset x
54 unset u
55 v=w
56 printf '<%s> ' ${u+x} . ${v+x} . "${u+x}" . "${v+x}" .; echo
57 printf '<%s> ' ${u-x} . ${v-x} . "${u-x}" . "${v-x}" .; echo
58 printf '<%s> ' ${u=x} . ${v=x} . "${u=x}" . "${v=x}" .; echo
59 printf '<%s> ' ${u?x} . ${v?x} . "${u?x}" . "${v?x}" .; echo
60 printf '<%s> ' ${u#x} . ${v#x} . "${u#x}" . "${v#x}" .; echo
61 printf '<%s> ' ${u%x} . ${v%x} . "${u%x}" . "${v%x}" .; echo
62 printf '<%s> ' ${u:+x} . ${v:+x} . "${u:+x}" . "${v:+x}" .; echo
63 printf '<%s> ' ${u:-x} . ${v:-x} . "${u:-x}" . "${v:-x}" .; echo
64 printf '<%s> ' ${u:=x} . ${v:=x} . "${u:=x}" . "${v:=x}" .; echo
65 printf '<%s> ' ${u:?x} . ${v:?x} . "${u:?x}" . "${v:?x}" .; echo
66 # these are invalid substitution operators
67 #printf '<%s> ' ${u:#x} . ${v:#x} . "${u:#x}" . "${v:#x}" .; echo
68 #printf '<%s> ' ${u:%x} . ${v:%x} . "${u:%x}" . "${v:%x}" .; echo
70 unset foo
71 set -o posix
73 recho "${IFS+'bar}"
74 recho "foo ${IFS+'bar} baz"
76 recho ${IFS+'}'z}
77 recho "${IFS+'}'z}"
79 : ${TMPDIR:=/var/tmp}
80 rm -f $TMPDIR/sh
81 cp ${THIS_SH} $TMPDIR/sh
82 THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp1.sub || echo "sh posixexp1.sub: test $? failed"
83 ${THIS_SH} ./posixexp1.sub || echo "bush posixexp1.sub: test $? failed"
85 THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp2.sub || echo "sh posixexp2.sub: test $? failed"
86 rm -f $TMPDIR/sh
88 ${THIS_SH} ./posixexp3.sub
89 ${THIS_SH} ./posixexp4.sub
90 ${THIS_SH} ./posixexp5.sub
91 ${THIS_SH} ./posixexp6.sub
92 ${THIS_SH} ./posixexp7.sub
93 ${THIS_SH} ./posixexp8.sub
95 # this will be an error
96 foo=bar
97 echo "${foo:-"a}"