Ім’я користувача поточного користувача можна отримати в чистому Bash з ${parameter@operator}
розширенням параметра (введеного в Bash 4.4):
$ : \\u
$ printf '%s\n' "${_@P}"
:
Вбудований (синонім true
) використовується замість тимчасової змінної, встановивши останній аргумент, який зберігається в $_
. Потім розгортаємо його ( \u
) так, ніби це рядок підказок з P
оператором.
Це краще, ніж використовувати $USER
, як$USER
це просто звичайна змінна середовище; його можна змінювати, не встановлювати тощо. Навіть якщо це не навмисно підроблено, звичайний випадок, коли він все ще неправильний, - це коли користувач перемикається без запуску оболонки входу ( su
за замовчуванням).