我有一个主要的 unixoid 软件,它通常会写入指定为参数的文件。
现在我想添加写入 stdout 的功能。但写入文件仍应是标准行为。
我想我见过类似这样的 shell 命令
command --outfile -
或者
command -
这是常见的做法吗?不幸的是,我不记得有这样的命令。
答案1
一种常见的方法是,当参数列表中的最后一个参数是连字符(或在某些情况下是双连字符)时写入标准输出。
如果您正在编写程序,则可以采取额外步骤并使用显式-stdout
参数来打印到标准输出。由于-
语法不是官方标准,我建议最好在可读性方面谨慎行事。
答案2
连字符在各种 *nix 命令中用于指示 stdin 或 stdout,具体取决于其使用的上下文。它是相当常见但绝不是通用的,因此在使用特定命令之前,您应该检查其文档。
答案3
常见的做法(例如 gzip)是,如果未指定文件(假设您可以确定)或者给出连字符作为最后一个选项,则写入 stdout。