User STD Redirect

디스크립터는 0-8(9개) 까지 사용가능하며,
default로 0, 1, 2에만 할당(open) 되어 있다.
출력 디스크립터 할당(open)
exec 3> fd3File.txt
exec 4>> fd4File.txt
echo "write on fd3" >&3
echo "write on fd4" >&4
파일 디스크립터를 리다이렉트 하기
orig
exec 3>&1 # fd3 fd1 ()
exec 1>out.txt
exec 1>&3 # return to orig state
입력 파일 디스크립터 할당(open)
exec 6<&0
exec 0< input.txt
exec 0<&6
출력/입력(읽기/쓰기)용 파일 디스크립터
exec 3<> inout.txt
파일 포인터는 읽기/쓰기 작업이 끝난 이후, 마지막 위치를 내부 포인터가 포인팅하고 있다.
따라서 포인터를 제대로 관리하지 않으면 기존 데이터를 덮어쓰게 되는 등의 문제가 생긴다.
파일 디스크립터 닫기
&- 특수 기호로 리다이렉트 함으로서 해당 파일 디스크립터를 수동으로 닫을 수 있다.
exec 3> &-
파일 디스크립터를 닫고 난 이후,
동일한 출력 파일에 대해서 다시 파일 디스크립터를 생성한다고 해도
쉘은 기존 파일을 새 파일로 대체하게 된다.
(기존 파일을 덮어쓰게 될 수 있음)