shell 中是否存在 USER 环境变量

shell 中是否存在 USER 环境变量

我听说(虽然我找不到任何证据来源)在旧的 Unix shell 中可能未设置 USER 环境变量(甚至一些不太知名的 shell 也可能如此)。不设置的概率是多少?

答案1

这个概率很低。

如果你想要在编写脚本时回退:

USER=${USER:-`whoami`}

...如果未设置,将默认为 $USER。

对于非常老的 POSIX 之前的 Bourne shell,您需要:

test -z "$USER" && USER=`whoami`

答案2

那么,您是否希望使用任何旧的 shell,或者您是否希望您的程序的用户这样做?

无论如何,总是有的id -un,尽管我不知道这是否比 $USER 更通用或更不通用。您可以让脚本尝试两者。

相关内容