"bash: 예상치 못한 토큰 '('" 근처에 구문 오류가 발생했습니다. 프로세스 대체 오류

"bash: 예상치 못한 토큰 '('" 근처에 구문 오류가 발생했습니다. 프로세스 대체 오류

새롭고 깨끗한 bash 인스턴스에서 예상되는 결과를 얻습니다.

$ printf "a\td\n" | cat -vE
a   d$
$
$ file <(printf "a\td\n" | cat -vE)
/dev/fd/63: symbolic link to pipe:[6664004]

하지만 현재 다음을 반환하는 bash 인스턴스가 있습니다.

$ printf "a\td\n" | cat -vE
a   d$
$
$ file <(printf "a\td\n" | cat -vE)
bash: syntax error near unexpected token `('
$
$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf
printf is /bin/printf
$
$ type -a file
file is /usr/bin/file
file is /bin/file

이 오류의 원인은 무엇입니까?

환경 변수를 비교해 보면 새로운 bash 인스턴스와 큰 차이가 없습니다. 이번에도 현재 세션에 존재하는 변수에는 특별한 내용이 없습니다. 어떤 단서가 있나요? ...

답변1

POSIXLY_CORRECT이전에 실행했던 것처럼 우연히 변수가 설정되었습니다 set -o posix.

내 변수 목록에 있지만, POSIXLY_CORRECT=y언뜻 보기에 이것이 이유일 것이라고는 생각하지 못했습니다. (차라리 명령 이름과의 간섭을 찾고 싶습니다.)

재설정을 사용하면 set +o posix문제가 해결되었습니다.

관련 정보