Io-Redirection
如何在busybox中重定向stderr?
我有
BusyBox v1.27.1 (2017-08-03 03:14:35 CEST) built-in shell (ash)
在路由器上。我發現了一個奇怪的問題:
root@DD-WRT:/# echo -n "Hi" 2>/dev/null -sh: 2: Invalid argument
似乎我無法重定向標準錯誤。這是眾所周知的事情嗎?還是一個錯誤?是否有一些替代重定向標準錯誤的方法?
這是一個 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_CLOEXEC
到 DD-WRT 的 Linux 2.6 中。進一步閱讀
- 醫生(2017-03-26)。Busybox - 自 r31533 Broadcom K2.6 以來的參數無效。DD-WRT 錯誤 #5784。
- 丹尼斯·弗拉森科 (2018-03-30)。 灰:使用
F_DUPFD_CLOEXEC
和O_CLOEXEC
。忙箱 git。