오류를 캡처하여 사용자 지정 메시지와 함께 로그 파일에 기록하고 싶습니다.
다음 명령을 고려하십시오.
$(find $val -type f -delete) || echo "error in deleting files" |tee -a log.txt
이 명령은 log.txt 파일에 다음 줄을 씁니다.
error in deleting files
그러나 로그 파일이 다음과 같이 보이도록 사용자 정의 메시지와 함께 find 명령의 오류를 로그 파일에 인쇄하고 싶습니다.
find: `/home/temp': No such file or directory
error in deleting files
답변1
거기에서 연산자 우선 순위를 변경하고 find || echo
명령을 파이프로 리디렉션되는 복합 명령으로 그룹화 해야 합니다 tee
.
{ $(find $val -type f -delete) || echo "error in deleting files"; } 2>&1 |tee -a log.txt
또는:
($(find $val -type f -delete) || echo "error in deleting files") 2>&1 |tee -a log.txt
리디렉션은 오류 메시지를 에서 읽고 있는 파이프로 리디렉션하는 2>&1
데 사용되지만 출력은 이미 자연스럽게 해당 파이프로 들어가고 있습니다 .find
tee
echo