Bash 脚本。以用户身份登录,运行 一个命令,注销

Bash script. Sign in as user, run a command, sign out

大家好,我是 bash 的新手。 我正在创建一个简单的记录器,我想要实现的就是以超级用户身份登录,所以 (sudo su) 运行 一些代码(写入文件)然后以超级用户身份注销,然后执行其余代码

这是我的例子:

 read -p "Are you sure you want to log this?" -n 1 -r
if [[ $REPLY =~ ^[Yy] ]]
    then
    sudo su
    if [ "$EUID" -ne 0 ]
    then
        echo $log >> ~/Logs/logs.txt            
    fi
    exit
fi
echo "DONE"

我真的很难找到一个解决方案有一些例子,但没有这么简单(我能找到的是)

感谢您抽出时间提供帮助。

如果您执行 sudo su,您将获得一个交互式会话 - 也许您应该只执行命令来写入日志:

read -p "Are you sure you want to log this?" -n 1 -r
if [[ $REPLY =~ ^[Yy] ]]
then
 sudo bash -c "if [ \"$EUID\" -ne 0 ]; then echo $log >> ~/Logs/logs.txt; fi"
fi
echo "DONE"