我有这样的代码:
echo 'test'
usr=$USER
sudo sh -c "exec su $usr"
echo 'test1'
例如echo 'test'
是代码,我在那里配置一些东西,要求我在新shell中重新登录。但是代码是echo 'test1'
的地方我需要继续使用重新加载的shell进行配置。
有没有办法自动完成?比如开始新的shell并行或类似的东西?
Ubuntu 14.04,bash。
更新
例如,我需要安装virsh但安装后需要运行sudo。我的脚本配置组将$ USER添加到libvirtd组。然后我需要重新登录。我可以用sudo sh -c "exec su $usr"
做到这一点。之后我需要脚本继续执行。有没有办法做到这一点?
答案 0 :(得分:2)
使用visudo
更改您的sudoers配置,以便不再要求您输入密码。请参阅man visudo
和man sudoers
。
我建议使用heredoc:
echo 'test'
usr="$USER"
sudo su - "$USER" << EOF
echo 'test1'
EOF