如何在busybox中重定向stderr?

mic*_*vka 2 io-redirection busybox stderr

我有

BusyBox v1.27.1 (2017-08-03 03:14:35 CEST) built-in shell (ash)
Run Code Online (Sandbox Code Playgroud)

路由器上。我发现了一个奇怪的问题:

root@DD-WRT:/# echo -n "Hi" 2>/dev/null
-sh: 2: Invalid argument
Run Code Online (Sandbox Code Playgroud)

似乎我无法重定向 stderr。这是众所周知的事情吗?还是bug?是否有一些替代重定向标准错误?

Jde*_*eBP 5

这是一个 DD-WRT 错误,已于 2019 年 8 月修复。

  • 自 2008 年的 Linux 2.6.24 以来F_DUPFD_CLOEXEC,该fcntl()函数的参数已可用。
  • Busybox 的 Almquist shell 在十年后的 2018 年开始使用它,用于制定 shell 重定向的部分内容。
  • 但是在某些路由器上的 DD-WRT 中提供的 Linux 2.6 是 Linux 2.6。23 .

修复是将F_DUPFD_CLOEXECDD-WRT 的 Linux 2.6支持向后移植。

进一步阅读