나는 가지고있다
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
. 바쁜 상자 자식.