在 bash 中执行后继续执行脚本
Continue script execution after exec in bash
我有这样的代码:
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"
做到这一点。之后我需要脚本继续执行。有办法吗?
更改 visudo
您的 sudoers 配置,以便不再要求您输入密码。参见 man visudo
和 man sudoers
。
我建议使用 heredoc:
echo 'test'
usr="$USER"
sudo su - "$USER" << EOF
echo 'test1'
EOF
我有这样的代码:
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"
做到这一点。之后我需要脚本继续执行。有办法吗?
更改 visudo
您的 sudoers 配置,以便不再要求您输入密码。参见 man visudo
和 man sudoers
。
我建议使用 heredoc:
echo 'test'
usr="$USER"
sudo su - "$USER" << EOF
echo 'test1'
EOF