표현식 (if 문의) 출력을 파일로 리디렉션하고 싶습니다. 예 : 그래서,BASH 평가 출력 리디렉션
if ./primitives 1>> output.txt ; then
echo "primitives OK. " | tee -a output.txt
fi
위 작동하지 않습니다 : 나는의 표현은 문 './primitive'는 '가', 뭔가 같은 파일에 './primitives'의 출력을 리디렉션 할 시작 :
if ./primitives ; then
echo "primitives OK. "
fi
는 어떻게 파일에 './primitives'의 출력을 얻을 않으며, 만 문자열은 "프리미티브 OK."메아리 './primitives가'제대로 실행하는 경우?
보너스 포인트를 얻으려면 제대로 실행되면 'output.txt'파일에 './primitives'의 STDOUT 만 리디렉션 한 다음 콘솔에 "primitives OK."를 출력하고 콘솔에 추가하면 어떻게됩니까? 파일? 그러나 './primitives'가 올바르게 실행되지 않으면 'output.txt'에 아무것도 인쇄하지 말고 STDERR을 콘솔에 인쇄하십시오.
아니면이 모든 문제를 잘못된 방식으로 생각하고 있습니까?
감사
편집 :
현재 스크립트 출력은 다음과 같습니다
스크립트 :
#!/bin/bash
if ./compile.sh; then
echo "Compile OK. " | tee output.txt
if ./primitives 1>> output.txt ; then
echo "primitives OK. " | tee -a output.txt
fi
if ./composites 1>> output.txt ; then
echo "composites OK. " | tee -a output.txt
fi
fi
은 현재 콘솔 출력 :
Compile OK.
원하는 콘솔 출력 :
Compile OK.
primitives OK.
composites OK.
위의 편집을 참조하십시오. – dje1990
'primitives'의 출력물이'output.txt'에 추가됩니까? 그렇다면,'primitives'가 0이 아닌 종료 코드로 종료되어'if' 문의 본문이 실행되는 것을 방지합니다. – chepner
'primitives'가 zero 코드로 끝내고 올바르게 실행되지만, echo는 output.txt 나 콘솔에서 출력되지 않습니다. 그래서'tee'를 잘못 사용한 것입니까? 어떤 생각? 나는 google을 가질 것이다. 감사합니다. – dje1990