![cp 오류 메시지는 Ubuntu 12.04(?) 및 Fedora 24에서 다른 참조를 사용합니다.](https://linux55.com/image/111222/cp%20%EC%98%A4%EB%A5%98%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%8A%94%20Ubuntu%2012.04(%3F)%20%EB%B0%8F%20Fedora%2024%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EC%B0%B8%EC%A1%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EB%8B%A4..png)
F24에서 개발 중인데 테스트에 통과했지만 Travis CI에서 시도하면 실패합니다. AFAIK, 그들은 (Travis CI) Ubuntu 12.04 VM을 사용합니다. 테스트에서는 실행 출력을 이전에 수집된 "황금" 출력과 비교하고 차이가 있으면 실패로 표시합니다.
cp
이 특별한 경우에는 존재하지 않는 파일에 대해 명령을 호출하면 오류 메시지가 생성되기 때문에 차이가 발생 하지만 오류 메시지는 두 시스템 간에 약간 다릅니다. Fedora 24에서는 다음을 얻습니다.
$ cp foo bar
cp: cannot stat 'foo': No such file or directory
Ubuntu 12.04 VM(Travis CI 환경을 시뮬레이션하도록 설정됨)에서 다음을 얻습니다.
$ cp foo bar
cp: cannot stat `foo': No such file or directory
F24 출력의 작은따옴표 대신 Ubuntu 출력의 백틱을 확인하세요.
시도해 보았지만 export LC_ALL=C
어떤 출력에도 아무런 효과가 없습니다. F24에는 coreutils 버전 8.25가 있습니다(ls 출력에 악명 높은 참조 파일 이름 변경이 포함되어 있지만 내 문제와 관련이 없다고 생각합니다). 우분투 12.04에는 버전 8.13이 있습니다.
내 질문:
1) 이것은 coreutils 8.13과 8.25 간의 변경 사항입니까? 아니면 Fedora와 Ubuntu가 coreutil을 다르게 컴파일합니까?
2) 최신 Ubuntu 버전에서는 이 오류 메시지(및 기타 오류 메시지)에 백틱을 사용합니까?
3) 오류 메시지에 사용된 따옴표를 설정할 수 있는 방법이 있나요? 어느 시스템에서요?
4) "gold" 출력과 비교하기 전에 명령 출력을 수정하고 모든 백틱을 작은따옴표로 변경할 수 있습니다. 더 나은 접근 방식에 대한 제안이 있습니까?
편집: Travis CI 환경에서 최신 버전의 우분투를 실행할 수 있다는 말을 들었습니다( "dist: trusty" 추가 .travis.yml
). 이 버전(16.04)은 en_US.UTF-8 환경에서 오류 메시지의 따옴표를 열고 닫는 데 유니코드 작은따옴표(코드 포인트 #x2018)를 사용합니다. C 로케일에서는 ASCII 아포스트로피를 사용합니다. 제 목적에는 충분합니다.
답변1
[이 정보를 추가하기 위해 질문을 편집했지만 끝내기 위해 답변으로 추가했습니다. 12.04에서 백틱을 사용하는 이유는 여전히 확실하지 않지만 최신 버전이 사용 가능해지면 문제가 해결되지 않는 것 같습니다. ]
Travis CI 환경에서 최신 버전의 우분투를 실행할 수 있다는 말을 들었습니다("dist: trusty" 추가 .travis.yml
). 이 버전(16.04)은 en_US.UTF-8 환경에서 오류 메시지의 따옴표를 열고 닫는 데 유니코드 작은따옴표(코드 포인트 #x2018)를 사용합니다. C 로케일에서는 ASCII 아포스트로피를 사용합니다. 제 목적에는 충분합니다.