(bash) 쉘에서 파일 설명자를 사용합니까?

(bash) 쉘에서 파일 설명자를 사용합니까?

직렬 포트를 읽고 쓰기 위한 다음 셸 명령 세트를 발견했습니다.이것철사:

stty -speed 19200 < /dev/ttyS0 # sets the speed of the port
exec 99<>/dev/ttyS0 (or /dev/ttyUSB0...etc)
printf "AT\r" >&99
read answer <&99  # this reads just a CR
read answer <&99  # this reads the answer OK
exec 99>&-

파일 설명자를 사용하는 줄, 특히 다음 두 줄을 이해할 수 없습니다.

exec 99<>/dev/ttyS0 (or /dev/ttyUSB0...etc)

그리고

exec 99>&-

그들은 무엇을 하고 있나요? 99다른 번호 대신 이 번호를 사용하는 이유가 있나요 ? 도움을 주시면 감사하겠습니다. 감사해요!

답변1

주석에서 언급했듯이 이는 해당 파일 처리기의 ID일 뿐입니다. STDINID 0이 있는 것처럼 STDOUTID 1도 있고 STDERRID 2도 있습니다.

예를 들어:

echo aa >/dev/null

그리고

echo aa 1>/dev/null

동일합니까?

관련 정보