Я слышал (хотя я не могу найти источники для доказательства), что переменная Пользовательской среды не может быть установлена в старых оболочках Unix (возможно, даже некоторые неясные оболочки также). Какова вероятность, что это не будет установлено?
Вероятность является очень низкой.
если Вы хотите нейтрализацию при записи сценария:
USER=${USER:-`whoami`}
... примет значение по умолчанию $USER, если он будет сброшен.
Для действительно старых Оболочек Bourne предPOSIX Вы хотели бы:
test -z "$USER" && USER=`whoami`
Ну, Вы ожидаете использовать какие-либо старые оболочки, или Вы ожидаете, что пользователи Вашей программы сделают так?
Так или иначе, всегда существует id -un
, хотя я понятия не имею, более или менее ли это универсально, чем $USER. У Вас могла быть своя попытка сценария оба.