57 lines
		
	
	
	
		
			703 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
	
		
			703 B
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | minus=- | ||
|  | 
 | ||
|  | # standard input | ||
|  | fd=0 | ||
|  | 
 | ||
|  | exec 3<&$fd | ||
|  | 
 | ||
|  | read line <&3 | ||
|  | echo from stdin: $line | ||
|  | 
 | ||
|  | # close fd 3 | ||
|  | exec 3<&${minus} | ||
|  | 
 | ||
|  | # should give `bad fd', but exact error messages vary | ||
|  | # read line <&3 | ||
|  | 
 | ||
|  | # standard output | ||
|  | fd=1 | ||
|  | 
 | ||
|  | exec 4>&$fd | ||
|  | 
 | ||
|  | echo to stdout >&4 | ||
|  | 
 | ||
|  | exec 4>&$minus | ||
|  | 
 | ||
|  | # should give `bad fd', but exact error messages vary | ||
|  | # echo to stdout >&4 | ||
|  | 
 | ||
|  | unset fd | ||
|  | 
 | ||
|  | # these are ambiguous redirects | ||
|  | exec 3<&$fd | ||
|  | exec 4>&$fd | ||
|  | 
 | ||
|  | exec 3>&1 4>&2 | ||
|  | 
 | ||
|  | exec >&/tmp/err-and-out | ||
|  | echo to stdout | ||
|  | echo to stderr >&2 | ||
|  | 
 | ||
|  | exec 1>&3 2>&4 | ||
|  | echo /tmp/err-and-out: | ||
|  | cat /tmp/err-and-out | ||
|  | 
 | ||
|  | rm /tmp/err-and-out | ||
|  | 
 | ||
|  | fd=/tmp/err-and-out | ||
|  | exec >&$fd | ||
|  | echo to stdout | ||
|  | echo to stderr >&2 | ||
|  | 
 | ||
|  | exec 1>&3 2>&4 | ||
|  | echo /tmp/err-and-out: | ||
|  | cat /tmp/err-and-out | ||
|  | 
 | ||
|  | rm /tmp/err-and-out |