Я хочу створити 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-сумісних функцій.