70 lines
		
	
	
	
		
			763 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
	
		
			763 B
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | # weird redirections that caused trouble and were fixed in post-3.0 bash | ||
|  | stuff() | ||
|  | { | ||
|  | 	c=1 | ||
|  | 	( sleep 5 < /dev/null >/dev/null 2>&1 & ) & | ||
|  | } | ||
|  | 
 | ||
|  | exec 3>&1 | ||
|  | eval ` | ||
|  | exec 4>&1 >&3 3>&- | ||
|  | { | ||
|  | 	stuff 4>&- | ||
|  | 	echo "c=$c" >&4 | ||
|  | }` | ||
|  | echo c1 is $c | ||
|  | 
 | ||
|  | unset -f stuff | ||
|  | 
 | ||
|  | stuff() | ||
|  | { | ||
|  | 	c=2 | ||
|  | 	( sleep 5 < /dev/null >/dev/null 2>&1 & ) | ||
|  | } | ||
|  | 
 | ||
|  | exec 3>&1 | ||
|  | eval ` | ||
|  | exec 4>&1 >&3 3>&- | ||
|  | { | ||
|  | 	stuff 4>&- | ||
|  | 	echo "c=$c" >&4 | ||
|  | }` | ||
|  | echo c2 is $c | ||
|  | 
 | ||
|  | unset -f stuff | ||
|  | 
 | ||
|  | stuff() | ||
|  | { | ||
|  | 	c=3 | ||
|  | 	{ sleep 5 < /dev/null >/dev/null 2>&1 & } & | ||
|  | } | ||
|  | 
 | ||
|  | exec 3>&1 | ||
|  | eval ` | ||
|  | exec 4>&1 >&3 3>&- | ||
|  | { | ||
|  | 	stuff 4>&- | ||
|  | 	echo "c=$c" >&4 | ||
|  | }` | ||
|  | echo c3 is $c | ||
|  | 
 | ||
|  | unset -f stuff | ||
|  | 
 | ||
|  | stuff() | ||
|  | { | ||
|  | 	c=4 | ||
|  | 	{ sleep 5 < /dev/null >/dev/null 2>&1 & } | ||
|  | } | ||
|  | 
 | ||
|  | exec 3>&1 | ||
|  | eval ` | ||
|  | exec 4>&1 >&3 3>&- | ||
|  | { | ||
|  | 	stuff 4>&- | ||
|  | 	echo "c=$c" >&4 | ||
|  | }` | ||
|  | echo c4 is $c | ||
|  | 
 | ||
|  | # fixed in bash-3.1 | ||
|  | echo 'exec <&3' | ${THIS_SH} 3<&0 |