當不帶參數呼叫時, GNU Coreutils 中的env
和printenv
指令會列印每個環境變數的值。是什麼決定了這些變數的列印順序?它不是按字母順序排列,也不是設定變數的順序。
答案1
每個進程都有一個作為其環境維護的字串清單。當您從此清單中新增、修改或刪除項目時,執行時間庫必須更新對應的陣列。由於沒有以排序形式維護清單的標準要求,因此在執行時使用開發人員認為更新清單的最快方法。性能考慮因素是什麼決定命令。
當然,要了解更多信息,的原始碼env
可供檢查。它會按照數組使用的順序列印環境environ
。