繁体   English   中英

在 bash 中 exec 后继续执行脚本

[英]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 进行配置。

有没有办法自动做到这一点? 像并行启动新外壳或类似的东西?

Ubuntu 14.04,bash。

更新:

例如,我需要安装 virsh 但安装后它需要 sudo 才能运行。 我的脚本配置组将 $USER 添加到 libvirtd 组。 然后我需要重新登录。 我可以用sudo sh -c "exec su $usr"做到这一点。 之后我需要脚本继续执行。 有没有办法做到这一点?

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

我建议使用heredoc

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM