History
為什麼 GNU 工具使用不匹配的 ` 和 ’ 來引用錯誤?
GNU 工具經常輸出錯誤和警告消息,其中部分行(例如文件名、語法錯誤、無效日期等)用不匹配的引號引起來:` 和 '
例如來自 GNU coreutils FAQ:
$ date -d "2006-04-02 02:30:00" date: invalid date `2006-04-02 02:30:00'
和
rm: cannot remove `backup.tar': Value too large for defined data
他們為什麼這樣做呢?有什麼好處嗎?它背後的歷史是什麼?
使用舊的 X 字型,`..’ 看起來像 ‛..’ 一樣對稱
還給定 `..’ latex 生成正確的左右單引號,如 ‘..’
所以 `..’ 是一個 hack,並且在 2012 年 coreutils變成了 shell,比如引用 ‘..’
但是,現在它不是完整的 shell 語法,如果存在嵌入的“\r”字元等,則會生成損壞的輸出。在某些情況下也不一致地沒有使用引號,有時使用了 unicode ‘..’ 引號(它使用為語言環境定義的引號並滿足這些控製字元的轉義)。
coreutils 引入了一個最近的(2015 年)更新檔 集,通過引用 shell 兼容格式的所有文件名輸出來使其更加一致,這也適當地轉義了控製字元,並允許更輕鬆地複制和粘貼回其他命令。診斷中的其他項目使用上面提到的“完整 unicode”引用。