저는 bash 스크립트 코드를 작업 중인데 "&>>" 연산자를 발견했습니다. 나는 그 목적을 이해하지 못했습니다. 그래서 나는 언급했다.http://www.gnu.org/software/bash/manual/html_node/Redirections.html.
와 의미상 동일합니다 >> file 2>&1
.
다음은 내 쉘의 출력입니다.
# echo $SHELL
/bin/bash
# echo "hello" &>> file1
bash: syntax error near unexpected token `>'
그리고
# echo "hello" >> file1 2>&1
# cat file1
hello
질문: - 왜 오류가 발생합니까 bash: syntax error near unexpected token '>'
?
[편집하다]:- Bash 버전 3.2.25(1)-릴리스(x86_64-redhat-linux-gnu)
답변1
이전 버전의 bash(3.2.25)를 사용하고 있기 때문에 해당 오류가 발생합니다.
Bash4부터
&>>TARGET
와 동등한 가 있습니다>> TARGET 2>&1
.
원천:리디렉션 출력 추가
따라서 업그레이드를 고려해야 합니다. 나는 bash 버전 4.2.45를 사용하고 있는데 echo "hello" &>> file1
그것은 나에게 매력적으로 작동합니다.
답변2
이 기능은 bash 4.0 알파에서 도입되었으므로 4.0 이상의 모든 bash에서 사용할 수 있습니다.
http://git.savannah.gnu.org/cgit/bash.git/tree/CHANGES?id=0001803f0b9523c94fa2ede48eaecb047fef4524——라인 976.
(원본 4.0-alpha 변경 로그에서는 연산자를 로 잘못 보고했습니다 >>&
. 매뉴얼 페이지에는 올바른 1이 표시되었으며 &>>
오타는 4.1에서 수정되었습니다.)