up vote 0 down vote favorite
share [g+] share [fb]

I heard (although I can't find any sources for proof) that the USER environment variable may not be set in a old Unix shells (maybe even some obscure shells as well). What is the probability that it won't be set?

link|improve this question
3:1. no, wait... 17:1. no, wait... – quack quixote Jan 29 '10 at 0:06
feedback

2 Answers

up vote 1 down vote accepted

The probability is very low.

if you want a fallback when writing a script:

USER=${USER:-`whoami`}

...will default $USER if it's unset.

For really old pre-POSIX Bourne shells, you'd want:

test -z "$USER" && USER=`whoami`
link|improve this answer
feedback

Well, are you expecting to use any old shells, or are you expecting users of your program to do so?

Anyway, there's always id -un, though I have no idea whether this is more or less universal than $USER. You could have your script try both.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.