![>2&1을 평가할 때 "-bash:1: 명령을 찾을 수 없음" 발생 [닫기]](https://linux55.com/image/76047/%26gt%3B2%26amp%3B1%EC%9D%84%20%ED%8F%89%EA%B0%80%ED%95%A0%20%EB%95%8C%20%22-bash%3A1%3A%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%9D%8C%22%20%EB%B0%9C%EC%83%9D%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
cpp
나는grep에서 반환된 개수를 어떻게 되돌릴 수 있나요?. 내 스크립트는 다음 메시지와 함께 실패합니다.-bash: 1: command not found
.
단순화된 테스트 사례는 다음과 같습니다.
$ echo `cpp -dM -fsanitize=undefined < /dev/null > /dev/null >2&1`
-bash: 1: command not found
1
Bash가 명령으로 실행을 시도하는 이유는 무엇 이며 오류를 해결하려면 어떻게 해야 합니까?
답변1
@steeldriver가 지적했듯이 문제는 잘못 구성된 io 리디렉션으로 인해 발생합니다. 이유는 다음과 같습니다.
cpp > 2 & 1
cpp 프로세스가 백그라운드에 배치되고 출력이 "2"라는 파일로 리디렉션됩니다. & 기호도 세미콜론과 같은 명령 구분 기호이므로 줄의 다음 명령은 쉘이 찾을 수 없는 "1"입니다. .