ファイル記述子とリダイレクト

ファイル記述子とリダイレクト

ファイル記述子が0キーボードに接続されていることを示すいくつかのリソースがあります。

0_kb

私は学んだecho以下から受信した入力はありません。stdin(または0)。

これは私にとって非常に矛盾していると感じます。実行時にecho fooコマンドに入力を渡す方法としてキーボードを使用します。stdinここに矛盾がないようにキーボードと接続されるというのはどういう意味ですか?

答え1

まず、stdinが常にキーボードに関連付けられているわけではありません。次に、文字列をシェルにecho渡すためにキーボードを使用しています。echo fooシェルはその文字列を解析し、名前付きコマンドecho(そのコマンドがシェルまたは実行可能ファイルの組み込みコマンドであるか/usr/bin/echo関連/bin/echoしていないか)を呼び出します。このコマンドは引数を解析し、標準入力を無視して文字列を作成します。foo\n

関連情報