50 lines
		
	
	
	
		
			1,000 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			50 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"
							 |