我遇到了以下一组用于读取和写入串行端口的 shell 命令,来自这线:
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
正如评论中提到的,这只是该文件处理程序的标识。就像STDIN
有 ID 0、STDOUT
有 ID 1、STDERR
有 ID 2一样。
例如:
echo aa >/dev/null
和
echo aa 1>/dev/null
是相同的