왜 명령
exec 2> /tmp/mytest
을 이행 할 수 없습니까?
할 수 있고 할 수 있습니다. 기다리고있는 프롬프트는 리디렉션 된 stderr, 즉 /tmp/mytest
. 이제부터 입력 한 내용은 터미널이 아닌 파일에 에코됩니다. 커서를 이동하려고하면 커서 이동을 담당하는 시퀀스도 파일로 이동합니다.
맹목적으로 입력 echo foo
하고 치고 Enter무슨 일이 일어나는지보십시오.
(출력이 없으면을 입력하기 전에 명령 줄이 비어 있지 않았을 가능성이 큽니다 echo
. 그러나 지금은 아마도 그렇습니다. 반복하십시오.)
쉘은 정상적으로 작동하며 명령을 캐스트 할 수 있습니다. 리디렉션 된 항목을 볼 수 없습니다.
exec 2> /tmp/mytest
스크립트에서 사용 하는 경우 스크립트를 해석하는 쉘은 대화식 쉘처럼 프롬프트를 인쇄하지 않기 때문에 프롬프트를 "도용"하는 기능은 중요하지 않습니다. 예외 :
exec 2> /tmp/mytest
그 안에 것 쉘에 영향을 미치는 당신에게 소스;문제는 Bash에 관한 것입니다. 다른 많은 쉘은 Bash처럼 작동합니다.
Zsh가 프롬프트를 인쇄하기 위해 stderr를 사용하지 않는다는 점은 주목할 가치가 있습니다. Zsh exec 2> /tmp/mytest
에서는 프롬프트를 리디렉션하지 않습니다. 나는 이것이 당신이 기대 한 행동이라고 생각합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다