shell script - 텍스트 일치 여부 검사
Contents
문제 상황
C 언어로 짠 코드를 make 명령어를 통해서 빌드, 실행하면 result
라는 파일을 나온다. 이 결과물과 예상 결과물 사이 비교하고자 한다.
문제 해결 방법
shell script 작성
vim diff_case.sh
우선 diff_case.sh
파일 만들어야 한다.
#!/bin/bash
# make 명령어 실행
make
# make 명령어로 생성된 결과 파일 경로
result_file="path/to/result_file.txt"
# 테스트 결과 파일 경로
test_file="path/to/test_file.txt"
# 결과 파일과 테스트 파일 비교
diff_output=$(diff "$result_file" "$test_file")
# 결과 파일과 테스트 파일의 차이 여부 확인
if [ "$diff_output" == "" ]; then
echo "일치합니다."
else
echo "일치하지 않습니다."
fi
결과물이 나올 경로와 예상된 결과물이 나올 경로를 절대 경로로 넣어주도록 한다.
chmod 775 diff_case.sh
위에서 생성한 파일의 권한이 없기 때문에 권한 설정을 해준다. 만약 해주지 않는 다면, Permission Error
가 난다.
최종 결과물
일치하면 쉘에서 다음과 같은 텍스트가 나온다.
발전 가능성
- make 명령어 대신 다른 실행 명령어를 넣으면 다양한 언어와 코드에 적용할 수 있다.
- 구체적으로 몇 번째 줄에서 두 텍스트 간 일치하지 않는지 알 수 있는 기능을 shell script에 넣어 볼 수 있다.