私は持っています
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
stderrをリダイレクトできないようです。これは誰もが知っている事実ですか?それともバグですか? stderrをリダイレクトする以外に他のオプションはありますか?
ベストアンサー1
これはDD-WRTのバグで、2019年8月に修正されました。
F_DUPFD_CLOEXEC
この関数のパラメータは、2008年のLinux 2.6.24以降で利用可能ですfcntl()
。- 10年後の2018年、BusyboxのAlmquistシェルはそれをシェルリダイレクトの定式化の一部として使用し始めました。
- ただし、一部のルーターのDD-WRTで提供されるLinux 2.6はLinux 2.6です。二十三。
解決策は、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
。忙しいボックスの子。