프로그램이 0이 아닌 코드로 종료되지 않는 한 출력 (stdout 및 stderr)을 억제하는 가장 좋은 방법은 무엇입니까? 나는 생각 중입니다:
quiet_success()
{
file=$(mktemp)
if ! "$@" > "$file" 2>&1; then
cat "$file"
fi
rm -f "$file"
}
그리고 실행 quiet_success my_long_noisy_script.sh
하지만 더 좋은 방법이 있는지 확실하지 않습니다. 다른 사람들이해야 할 일이라고 생각합니다.
맥락 상, 나는 이것을 cron 스크립트에 추가하여 실패했을 때 모든 것이 이메일로 전송되도록하고 싶습니다.
네, 방금 질문에 입력했습니다. 귀하의 제안을 적용, 나는 명령이 동의 해야 하는 책임이 있지만, 슬프 도다 ...
—
dimo414
구문 참고 사항 : 명령 주위에 괄호가 필요하지 않습니다.
—
manatwork
sh
구문 이 아니기 때문에 의사 코드를 게시 한 것으로 가정 하고 리디렉션 순서가 거꾸로되었습니다 (> "$file" 2>&1
더 많은 따옴표를 사용하십시오).