49 lines
		
	
	
	
		
			1,000 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1,000 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| # inconsistency with quoted pattern substitution patterns through bash-4.2
 | |
| # fixed in a ksh93-compatible (and Posix-compatible, in general) way
 | |
| # NOT backwards compatible
 | |
| 
 | |
| test="weferfds'dsfsdf"
 | |
| 
 | |
| # why does this work, this list was born of frustration, I tried
 | |
| # everything I could think of.
 | |
| echo \'${test//"'"/\'\\\'\'}\'" "
 | |
| 
 | |
| #but none of the following
 | |
| 
 | |
| echo "'${test//"'"/}'"
 | |
| 
 | |
| echo "'${test//"'"/"'\\''"}'"
 | |
| 
 | |
| echo "'${test//"'"/\'\\'\'}'"
 | |
| 
 | |
| #echo "'${test//'/}'"   # hangs waiting for '
 | |
| #echo "'${test//"'"/'\\''}'" # hangs waiting for '
 | |
| 
 | |
| unset test
 | |
| test=teststrtest
 | |
| echo "${test//str/"dd dd"}"
 | |
| echo ${test//str/"dd '\''dd"}
 | |
| 
 | |
| unset test
 | |
| test=teststring
 | |
| 
 | |
| echo "${test//str/"dddd"}"
 | |
| 
 | |
| echo ${test//str/"dddd"}
 | |
| 
 | |
| echo ${test//str/"'"}
 | |
| 
 | |
| echo "${test//str/"'"}"
 | |
| 
 | |
| #echo "${test//str/'}"   # hangs
 | |
| 
 | |
| test=test\'string
 | |
| echo "${test//"'"/"'"}"
 | |
| 
 | |
| x="a'b'c"; echo "${x//\'/\'}"
 | |
| 
 | |
| printf '%s\n' "foo ${IFS+"b   c"} baz"
 | |
| 
 | |
| # this is where the default behavior differs from posix
 | |
| set -o posix
 | |
| echo "foo ${IFS+'bar} baz"
 | 
