を読みますコマンド。は
しかし、私は(検索など)同じ端末上
echo hi ; read -t 30 hello
hi
を行うと、(別の端末上で)行う
lsof -a -d 0-2 -c read
私は
コマンドのlsofから任意の出力を得ることはありませんなぜですか?読み込みはbashが組み込まれているからですか?ここで何が起こっていますか?
を読みますコマンド。は
しかし、私は(検索など)同じ端末上
echo hi ; read -t 30 hello
hi
を行うと、(別の端末上で)行う
lsof -a -d 0-2 -c read
私は
コマンドのlsofから任意の出力を得ることはありませんなぜですか?読み込みはbashが組み込まれているからですか?ここで何が起こっていますか?
あなたは正しいです。 "read"はシェルが組み込まれています。プロセス名はsh(またはbash、またはzshなど)のままです。
さらに、いくつかのシェル組み込み関数にはバイナリの代替がありますが、読み込み用のものはありません。実際にはその構文のために、stdinから読み込んだ結果を代入するシェル変数の名前を取ります。それが外部プログラムであれば、呼び出し側シェルに変数を設定することはできません。
その変数は$ REPLYですよね? – abc
bashの 'help read':NAMEが指定されていない場合、読み込まれた行はREPLY変数に格納されます。 –
この質問は技術的には[unix and linux](http://unix.stackexchange.com/)に属します –