Наличие переменной оболочки USER в оболочке

Я слышал (хотя я не могу найти никаких источников для доказательства), что переменная окружения USER не может быть установлена ​​в старых оболочках Unix (возможно, даже в некоторых неясных оболочках). Какова вероятность того, что он не будет установлен?

2 ответа

Решение

Вероятность очень низкая.

если вам нужен запасной вариант при написании скрипта:

USER=${USER:-`whoami`}

... по умолчанию будет $USER, если он не установлен.

Для действительно старых оболочек Борна до POSIX вы бы хотели:

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

Ну, вы ожидаете использовать какие-либо старые оболочки или ожидаете, что пользователи вашей программы сделают это?

Во всяком случае, всегда есть id -unхотя я понятия не имею, является ли это более или менее универсальным, чем $USER. Вы могли бы иметь свой сценарий попробовать оба.

Другие вопросы по тегам