在bash

时间:2017-01-07 01:04:14

标签: bash login ubuntu-14.04 environment

我有这样的代码:

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"做到这一点。之后我需要脚本继续执行。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

使用visudo更改您的sudoers配置,以便不再要求您输入密码。请参阅man visudoman sudoers

我建议使用heredoc

echo 'test'
usr="$USER"
sudo su - "$USER" << EOF
echo 'test1'
EOF