File: posixexp.tests

package info (click to toggle)
bash 4.4-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 36,372 kB
  • sloc: ansic: 103,485; sh: 7,655; yacc: 5,214; makefile: 4,357; perl: 4,227; asm: 48; awk: 23; sed: 16
file content (77 lines) | stat: -rw-r--r-- 1,814 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unset a
printf "%s\n" ${a:=a\ b}
echo "$a"

unset v
recho ${v=a\ b} x ${v=c\ d}

unset v
recho "${v=a\ b}" x "${v=c\ d}"

unset a v

recho "foo ${IFS+'bar'} baz"
recho "a ${IFS+b  c} d"

recho "a ${IFS+"b  c"} d"

u=x
recho "foo ${IFS+a$u{{{\}b} c ${IFS+d{}} bar" ${IFS-e{}} baz

a=foo
recho "${IFS+'$a'}"
recho "${IFS+"'$a'"}"

recho ${IFS+'$a'}
recho ${IFS+"'$a'"}

unset a u
x='foo*bar'

recho "${x##"}"}"
recho "${x##'}'}"
recho "${x##'}"

recho "${x:-'}'}"

foo="x'a'y"
recho "${foo%*'a'*}"
unset x

unset u
v=w
printf '<%s> ' ${u+x} . ${v+x} . "${u+x}" . "${v+x}" .; echo
printf '<%s> ' ${u-x} . ${v-x} . "${u-x}" . "${v-x}" .; echo
printf '<%s> ' ${u=x} . ${v=x} . "${u=x}" . "${v=x}" .; echo
printf '<%s> ' ${u?x} . ${v?x} . "${u?x}" . "${v?x}" .; echo
printf '<%s> ' ${u#x} . ${v#x} . "${u#x}" . "${v#x}" .; echo
printf '<%s> ' ${u%x} . ${v%x} . "${u%x}" . "${v%x}" .; echo
printf '<%s> ' ${u:+x} . ${v:+x} . "${u:+x}" . "${v:+x}" .; echo
printf '<%s> ' ${u:-x} . ${v:-x} . "${u:-x}" . "${v:-x}" .; echo
printf '<%s> ' ${u:=x} . ${v:=x} . "${u:=x}" . "${v:=x}" .; echo
printf '<%s> ' ${u:?x} . ${v:?x} . "${u:?x}" . "${v:?x}" .; echo
# these are invalid substitution operators
#printf '<%s> ' ${u:#x} . ${v:#x} . "${u:#x}" . "${v:#x}" .; echo
#printf '<%s> ' ${u:%x} . ${v:%x} . "${u:%x}" . "${v:%x}" .; echo

unset foo
set -o posix

recho "${IFS+'bar}"
recho "foo ${IFS+'bar} baz"

recho ${IFS+'}'z}
recho "${IFS+'}'z}"

: ${TMPDIR:=/var/tmp}
rm -f $TMPDIR/sh
cp ${THIS_SH} $TMPDIR/sh
THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp1.sub || echo "sh posixexp1.sub: test $? failed"
${THIS_SH} ./posixexp1.sub || echo "bash posixexp1.sub: test $? failed"

THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp2.sub || echo "sh posixexp2.sub: test $? failed"
rm -f $TMPDIR/sh

# this will be an error
foo=bar
echo "${foo:-"a}"