什么是重定向到 NUL 或 /dev/null 的跨平台兼容方式?

Nat*_*han 7 linux windows command-line io-redirection

在 Windows 上,可以使用> NUL将管道重定向到空。在 Linux 上,一种使用> /dev/null. 是否有跨平台兼容的方式将管道重定向到两个平台的空?换句话说,我将能够使用它而不必担心命令在哪个平台上执行。

例如,我希望能够将以下命令编写为一个命令。

echo Hello > NUL
echo Hello > /dev/null
Run Code Online (Sandbox Code Playgroud)

当然,任何更复杂的事情都需要单独的脚本。用例是从跨平台语言(例如 Java、Python)执行的单个命令。我想避免检测平台,而是使用通用解决方案。

此外,用例是将访问 100 台机器,安装比简单地检测平台和调整命令更复杂。

小智 2

编写一个简单的 C 程序,它接受来自 stdio 的所有输入并忽略它。

将您的程序命名为类似的名称null,然后将其放入PATH您的操作系统中。

然后,你可以这样做:

echo Hello | null
Run Code Online (Sandbox Code Playgroud)

该程序编写起来很简单。它比“你好世界”要多一点。