Gee*_*eek 3 command-line shell terminal
有时候,我已经看到,当一个程序(比如说A)在前台运行,并打印输出到stdout,我可以输入另一个命令(比如B),当我按下Enter它运行时,即使我没有被提示输入B,因为A有还没执行完。我可以在 tcsh shell 中执行此操作,最终结果是B在A.
A
B
这个功能叫什么?这个外壳是特定的吗?如果我不在提示符下输入命令,它如何工作?
Ste*_*itt 6
这称为typeahead,它不是特定于 shell 的。您键入的内容最终会在终端中缓冲,下次在终端中运行的程序准备好输入时,它会读取缓冲区中等待的内容。在您的示例中,该程序是 shell,因此它执行您键入的命令,就好像您A在键入它之前等待完成一样。
有些程序会在接受输入之前明确地清除缓冲区;例如,大多数要求输入密码的程序会清除缓冲区,以确保用户知道输入的是什么(因为输入没有回显)。
归档时间:
11 年,4 月 前
查看次数:
987 次
最近记录: