Имя пользователя текущего пользователя может быть получено в чистом Bash с ${parameter@operator}расширением параметра (введено в Bash 4.4):
$ : \\u
$ printf '%s\n' "${_@P}"
:Встроенный (синоним true) используется вместо временной переменной, установив последний аргумент, который хранится в $_. Затем мы расширяем его ( \u), как если бы это была строка приглашения с Pоператором.
Это лучше, чем использовать $USER, так $USERкак это обычная переменная среды; его можно изменить, сбросить и т. д. Даже если он не был намеренно подделан, распространенным случаем, когда он по-прежнему неверен, является переключение пользователя без запуска оболочки входа (по suумолчанию).