78 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | 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}" |