프로그램, 해당 입력 및 원하는 출력이 있는 경우 프로그램에서 제공하기를 원하는 것과 실제로 제공하는 것을 자동으로 비교하려면 어떻게 해야 합니까? 예를 들어:
a=${./program < inputfile}
diff ${a} outputfile
답변1
diff
파일 이름을 인수로 전달하십시오. 대신 명령의 표준 출력에서 데이터를 전달하십시오. bash, zsh 또는 기타 유사한 셸을 사용하는 경우 프로세스 대체를 사용할 수 있습니다.
diff <(./program < inputfile) outputfile
또는 POSIXly(이름이 지정된 파이프를 사용할 수도 있지만 이는 약간 과잉일 수 있음):
./program < inputfile > /tmp/program-out
diff /tmp/program-out outputfile
rm /tmp/program-out