cp 錯誤消息在 Ubuntu 12.04(?) 和 Fedora 24 上使用不同的引用
我在 F24 上開發並且我的測試通過了,但是當我在 Travis CI 中嘗試它們時,它們失敗了。AFAIK,他們(Travis CI)使用 Ubuntu 12.04 虛擬機。該測試將執行的輸出與先前收集的“黃金”輸出進行比較,並將任何差異標記為失敗。
在這種特殊情況下,會出現差異,因為
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
注意 Ubuntu 輸出中的反引號,而不是 F24 輸出中的單引號。
我試過
export LC_ALL=C
了,但這對任何一個輸出都沒有任何作用。F24 具有 8.25 版的 coreutils(其中包含 ls 輸出中臭名昭著的引用文件名更改,但這與我的問題無關)。Ubuntu 12.04 有 8.13 版本。我的問題:
這是 8.13 和 8.25 之間 coreutils 的變化嗎?或者 Fedora 和 Ubuntu 是否以不同的方式編譯 coreutils?
最新的 Ubuntu 版本是否在此(可能還有其他)錯誤消息中使用反引號?
有沒有辦法設置錯誤消息中使用的引號?在任一系統上?
4)在與“gold”輸出進行比較之前,我可能會修改命令的輸出並將任何反引號更改為單引號。對更好的方法有什麼建議嗎?
編輯:我被告知我可以在 Travis CI 環境中執行更新版本的 ubuntu(將“dist:trusty”添加到
.travis.yml
)。該版本 (16.04) 在 en_US.UTF-8 環境中使用 Unicode 單引號 (codepoint #x2018) 作為錯誤消息中的開始和結束引號;它在 C 語言環境中使用 ASCII 撇號——這對我的目的來說已經足夠了。
$$ Edited the question to add this information but adding it as an answer just to close it out. It’s still not clear to me why 12.04 uses a backtick, but with the more recent version being available, that question seems moot. $$ 我被告知我可以在 Travis CI 環境中執行更新版本的 ubuntu(添加“dist: trusty”到
.travis.yml
)。該版本 (16.04) 在 en_US.UTF-8 環境中使用 Unicode 單引號 (codepoint #x2018) 作為錯誤消息中的開始和結束引號;它在 C 語言環境中使用 ASCII 撇號——這對我的目的來說已經足夠了。