我一直在寻找鲜为人知的命令,这些命令在特殊情况下读取其标准输入(例如缺少参数)。
我想“cat”或者其他命令可能适合这里。
答案1
我想到了一些案例:
- 缺少参数,
- 特殊参数“-”,
- 程序检测到标准输入不是终端,并且
- 选项(或环境变量)会覆盖该行为。
对于缺少参数,cat
这是一个有用的例子。同样地grep
,sed
。
特殊参数“-”在多个程序中使用,以明确告诉它从标准输入中读取。您可以在以下内容中找到讨论(带有示例):
对于标准输入不是终端的情况,我熟悉的情况不太为人所知:
- 对话启动时检查其输入是否是终端,如果不是,则打开终端设备。这是一个更大方案的一部分,它可以从管道读取数据,例如仪表小部件。
- 差异统计通过从标准输入读取其输入来处理丢失的参数,但除此之外,它的
-v
(详细)选项正在做这显示了进度,例如“。”对于每个文件 - 管道到 vi-like-emacs 使其将输入作为文件读取。 vim 的类似功能(稍后实现4),使用显式的“-”参数。
对于特殊参数: