(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>&-

ファイル記述子を使用する行、特に次の2行は理解できません。

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

同じですか?

おすすめ記事