]> git.ipfire.org Git - thirdparty/bash.git/blob - tests/posixexp.tests
Bash-4.3 patch 7
[thirdparty/bash.git] / tests / posixexp.tests
1 unset a
2 printf "%s\n" ${a:=a\ b}
3 echo "$a"
4
5 unset v
6 recho ${v=a\ b} x ${v=c\ d}
7
8 unset v
9 recho "${v=a\ b}" x "${v=c\ d}"
10
11 unset a v
12
13 recho "foo ${IFS+'bar'} baz"
14 recho "a ${IFS+b c} d"
15
16 recho "a ${IFS+"b c"} d"
17
18 u=x
19 recho "foo ${IFS+a$u{{{\}b} c ${IFS+d{}} bar" ${IFS-e{}} baz
20
21 a=foo
22 recho "${IFS+'$a'}"
23 recho "${IFS+"'$a'"}"
24
25 recho ${IFS+'$a'}
26 recho ${IFS+"'$a'"}
27
28 unset a u
29 x='foo*bar'
30
31 recho "${x##"}"}"
32 recho "${x##'}'}"
33 recho "${x##'}"
34
35 recho "${x:-'}'}"
36
37 foo="x'a'y"
38 recho "${foo%*'a'*}"
39 unset x
40
41 unset u
42 v=w
43 printf '<%s> ' ${u+x} . ${v+x} . "${u+x}" . "${v+x}" .; echo
44 printf '<%s> ' ${u-x} . ${v-x} . "${u-x}" . "${v-x}" .; echo
45 printf '<%s> ' ${u=x} . ${v=x} . "${u=x}" . "${v=x}" .; echo
46 printf '<%s> ' ${u?x} . ${v?x} . "${u?x}" . "${v?x}" .; echo
47 printf '<%s> ' ${u#x} . ${v#x} . "${u#x}" . "${v#x}" .; echo
48 printf '<%s> ' ${u%x} . ${v%x} . "${u%x}" . "${v%x}" .; echo
49 printf '<%s> ' ${u:+x} . ${v:+x} . "${u:+x}" . "${v:+x}" .; echo
50 printf '<%s> ' ${u:-x} . ${v:-x} . "${u:-x}" . "${v:-x}" .; echo
51 printf '<%s> ' ${u:=x} . ${v:=x} . "${u:=x}" . "${v:=x}" .; echo
52 printf '<%s> ' ${u:?x} . ${v:?x} . "${u:?x}" . "${v:?x}" .; echo
53 # these are invalid substitution operators
54 #printf '<%s> ' ${u:#x} . ${v:#x} . "${u:#x}" . "${v:#x}" .; echo
55 #printf '<%s> ' ${u:%x} . ${v:%x} . "${u:%x}" . "${v:%x}" .; echo
56
57 unset foo
58 set -o posix
59
60 recho "${IFS+'bar}"
61 recho "foo ${IFS+'bar} baz"
62
63 recho ${IFS+'}'z}
64 recho "${IFS+'}'z}"
65
66 : ${TMPDIR:=/var/tmp}
67 rm -f $TMPDIR/sh
68 cp ${THIS_SH} $TMPDIR/sh
69 THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp1.sub || echo "sh posixexp1.sub: test $? failed"
70 ${THIS_SH} ./posixexp1.sub || echo "bash posixexp1.sub: test $? failed"
71
72 THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp2.sub || echo "sh posixexp2.sub: test $? failed"
73 rm -f $TMPDIR/sh
74
75 # this will be an error
76 foo=bar
77 echo "${foo:-"a}"