나는 remove.sh
다음을 포함하고 있습니다 :
rm -v test.tmp
나는 install.sh
다음을 포함하고 있습니다 :
script remove.log -c './remove.sh'
존재 여부에 관계없이 화면에는 관련 메시지가 표시되지 않지만 test.tmp
스크립트 명령이 생성되는 것을 보려면 어떻게 해야 합니까?rm
removed 'test.tmp'
rm: cannot remove 'test.tmp': No such file or directory
remove.log
답변1
귀하의 질문이 "명령의 stderr 출력을 억제하는 방법"인 경우 대답은 다음과 같습니다.
command 2> /dev/null
이렇게 하면 stderr(파일 설명자 2라고도 함)을 리디렉션하여 /dev/null
수신한 내용을 모두 삭제합니다.
그러나 이 rm
명령은 -f
파일이 존재하지 않는 경우 오류 메시지가 생성되지 않도록 하는 플래그를 지원합니다.
$ rm file_that_does_not_exist
rm: file_that_does_not_exist: No such file or directory
$ rm -f file_that_does_not_exist
$
답변2
script
이것에는 과잉입니다. 예, 작동합니다. 하지만 이는 스크립트의 목적이 아닙니다. 스크립트는 TTY에 직접 액세스하고 STDOUT/STDERR을 사용하지 않는 애플리케이션을 위한 것입니다.
기본 셸 리디렉션을 사용하면 이 작업을 쉽게 수행할 수 있습니다.
./remove.sh &> remove.log