whoami su whoami
whoami sudo whoami
It's commonly believed that
su makes a session run as another user. In reality, it starts an entirely new shell, independent of the one currently running your script.
su; whoami will start a root shell and wait for it to exit before running
whoami. It will not start a root shell and then proceed to run
whoami in it.
To run commands as another user, use
sudo some command or
su -c 'some command'.
sudo is preferred when available, as it doesn't require additional quoting and can be configured to run passwordless if desired.
If you're aware of the above and want to e.g. start an interactive shell for a user, feel free to ignore this message.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.