ファイル記述子が0
キーボードに接続されていることを示すいくつかのリソースがあります。
私は学んだecho
以下から受信した入力はありません。stdin
(または0
)。
これは私にとって非常に矛盾していると感じます。実行時にecho foo
コマンドに入力を渡す方法としてキーボードを使用します。stdin
ここに矛盾がないようにキーボードと接続されるというのはどういう意味ですか?
答え1
まず、stdinが常にキーボードに関連付けられているわけではありません。次に、文字列をシェルにecho
渡すためにキーボードを使用しています。echo foo
シェルはその文字列を解析し、名前付きコマンドecho
(そのコマンドがシェルまたは実行可能ファイルの組み込みコマンドであるか/usr/bin/echo
関連/bin/echo
していないか)を呼び出します。このコマンドは引数を解析し、標準入力を無視して文字列を作成します。foo\n