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