我想创建一个bash别名,它执行以下操作:
sucdsource另一个脚本(特别是python virtualenv激活脚本)在运行别名之后,我希望以用户身份登录,在目录中激活虚拟服务器。除了su之外,我可以让一切都正常工作,它似乎生活在自己的平行宇宙中。
我找不到让cd和source在su环境中运行和坚持的方法,让我能够在su环境中继续工作。(例如,su -c只是运行操作,让我从我开始的地方开始。)
更新:
为了澄清一点,我想要这样的东西:
sudo -u www-data bash -c 'cd /var/www; pwd; whoami'但是,我想在交互式子subshell中保留到^D退出为止。
发布于 2014-05-29 18:55:55
如果你不关心你的~/.bashrc,你可以直接用你的文件来代替它:
su -c 'bash --rcfile myfile' 如果您确实关心并且您的文件只导出变量(即不定义别名或完成):
su -c 'source myfile; bash'如果确实需要~/.bashrc,并且需要定义别名和完成,则可以使用以下两种方法进行源:
su -s /bin/bash -c 'bash --rcfile <(echo "source ~/.bashrc; source myfile")'https://stackoverflow.com/questions/23940481
复制相似问题