Я хочу створити bash-скрипт, який повинен бути виконаний за допомогою sudo, але повинен враховувати ім’я користувача, який його не виконав. Тож якщо користувач bobпрацює, sudo ./myscript.shя хотів би myscript.shзнати, bobхто його виконав.
Давайте заглянемо всередину myscript.sh:
USER=$(whoami)
# Do something that takes into account the username.
Як я можу знати ім’я користувача, який породив процес? Більш конкретно, що я повинен використовувати замість того, whoamiщоб дістати, bobа не root?
#!/usr/bin/env bashу моїх баш-скриптах.
shчи щось інше.
USER=$(whoami). Зауважте, щоUSERвже існує як внутрішня змінна оболонки. Крім того, якщо це сценарій bash, не запускайте його з використаннямsh, який має лише підмножину POSIX-сумісних функцій.