저는 경쟁 프로그래밍 심사를 위한 스크립트를 작성 중입니다. 다음은 bash 스크립트의 일부입니다.
#!/bin/bash
TIMEFORMAT=%S
if [ $1 = "-cpp" ]; then
output1=$(g++ -std=c++17 -O2 -Wall -fsanitize=address -lm -s -x c++ b.cpp && ./a.out < input1)
expected1=$(< output1)
time1=$(time g++ -std=c++17 -O2 -Wall -fsanitize=address -lm -s -x c++ b.cpp && ./a.out < input1)
if [[ -z "$expected" ]]; then
echo "Test Case #1 - Passed! Time: ${time1} sec"
elif [ $output1 = $expected1 ]; then
echo "Test Case #1 - Passed."
else
echo "Test Case #1 - Failed (check 'dump1.log' for details)."
fi
fi
C++ 프로그램의 출력은 15
. Bash 스크립트의 출력은 다음과 같습니다.
0.172
Test Case #1 - Passed! Time: 15 sec
실제 연결점보다 높은 시간 출력을 인쇄합니다. 조인 포인트에서는 실제 C++ 출력을 인쇄합니다. 나는 bash를 처음 접했기 때문에 무슨 일이 일어나고 있는지 모릅니다.
답변1
간단히 호출하여 내장 함수를 time
사용할 수 있습니다 bash
. 이것을 확인하려면 type -a time
.
프로그램 을 사용하려면 time
전체 경로를 사용하십시오 /usr/bin/time
.
읽다 man time bash
.