>2&1을 평가할 때 "-bash:1: 명령을 찾을 수 없음" 발생 [닫기]

>2&1을 평가할 때 "-bash:1: 명령을 찾을 수 없음" 발생 [닫기]

cpp나는grep에서 반환된 개수를 어떻게 되돌릴 수 있나요?. 내 스크립트는 다음 메시지와 함께 실패합니다.-bash: 1: command not found.

단순화된 테스트 사례는 다음과 같습니다.

$ echo `cpp -dM -fsanitize=undefined < /dev/null > /dev/null >2&1`
-bash: 1: command not found

1Bash가 명령으로 실행을 시도하는 이유는 무엇 이며 오류를 해결하려면 어떻게 해야 합니까?

답변1

@steeldriver가 지적했듯이 문제는 잘못 구성된 io 리디렉션으로 인해 발생합니다. 이유는 다음과 같습니다.

    cpp  > 2   &   1

cpp 프로세스가 백그라운드에 배치되고 출력이 "2"라는 파일로 리디렉션됩니다. & 기호도 세미콜론과 같은 명령 구분 기호이므로 줄의 다음 명령은 쉘이 찾을 수 없는 "1"입니다. .

관련 정보