在没有参数的情况下调用时, GNU Coreutils 中的env
和printenv
命令会打印每个环境变量的值。什么决定了打印这些变量的顺序?它不是字母顺序,也不是变量设置的顺序。
答案1
每个进程都有一个字符串列表,它将其作为环境进行维护。当您添加、修改或删除此列表中的项目时,运行时库必须更新相应的数组。由于没有以排序形式维护该列表的标准要求,因此运行时使用开发人员认为最快的方法来更新列表。性能考虑是决定命令。
如需更多信息,源代码env
可供检查。它按照数组environ
使用的顺序打印环境。