TCP-соединение, только bash

Я нашел эту строку в сценарии. Хотя я прекрасно понимаю, что она делает - открывает двунаправленное TCP-соединение, - мне нужны пояснения по синтаксису. Вот строка:

exec 5<>"/dev/tcp/${SERVER}/${PORT}"

И мои вопросы:

  1. < и > обычно используются для перенаправления IOs. Что это означает? Можно ли это использовать в другом контексте? Как?
  2. Почему это работает, а /dev/tcp не существует?
  3. Почему 5? Может ли это быть другое число? Какие значения допустимы?
  4. Почему exec необходим? (учитывая, что на самом деле ничего не выполняется)

Спасибо.

27
задан gregseth 14 October 2011 в 08:31
поделиться