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