回答:
これはシェルの機能ですあり、オペレーティングシステムではありません。
したがって、たとえば、ksh88
シェルとしてのSolaris 10の場合:
% cat < /dev/tcp/localhost/22
ksh: /dev/tcp/localhost/22: cannot open
ただし、次のように切り替えた場合bash
:
% bash
bash-3.2$ cat < /dev/tcp/localhost/22
SSH-2.0-Sun_SSH_1.1.5
そのbash
ため/dev/tcp
、ksh88は解釈しませんでした。
ksh93
シェルとしてのSolaris 11の場合:
% cat < /dev/tcp/localhost/22
SSH-2.0-Sun_SSH_2.2
そのため、使用中のシェルに大きく依存していることがわかります。
/dev/tcp/...
それらの1つではありません)。
追加するには、Bash Infoノードから:
次の表で説明するように、Bashは、リダイレクトで使用される場合にいくつかのファイル名を特別に処理します。Bashが実行されているオペレーティングシステムがこれらの特殊ファイルを提供する場合、bashはそれらを使用します。それ以外の場合、以下に説明する動作で内部的にエミュレートします。
'/ dev / fd / FD' FDが有効な整数の場合、ファイル記述子FDは複製されます。
'/ dev / stdin'ファイル記述子0が重複しています。
'/ dev / stdout'ファイル記述子1が重複しています。
'/ dev / stderr'ファイル記述子2が重複しています。
'/ dev / tcp / HOST / PORT' HOSTが有効なホスト名またはインターネットアドレスであり、PORTが整数のポート番号またはサービス名である場合、Bashは対応するTCPソケットを開こうとします。
'/ dev / udp / HOST / PORT' HOSTが有効なホスト名またはインターネットアドレスであり、PORTが整数のポート番号またはサービス名である場合、Bashは対応するUDPソケットを開こうとします。