将环境variables导出到loginshell

我在Debian中使用bash

当我将一个variables导出到我的子shell的环境中时,它的工作原理是:

aUser> EXPORTED=exported aUser> export EXPORTED aUser> su myUser myUser> echo $EXPORTED # prints 'exported' 

但是当我创build一个loginshell时,它不会:

 aUser> EXPORTED=exported aUser> export EXPORTED aUser> su myUser --login myUser> echo $EXPORTED # prints '' 

如何导出一个variables或函数,以便我可以在loginshell中使用它? 我需要能够在我的父母脚本中定义之后使用它,所以我不能把它放在例如。 .profile文件。

当你用–login启动一个shell时,你故意擦除所有的环境variables,并以一个空白的开始,就像用户直接login一样。 所以你不能只是传递variables。

可以做的是把variables写入一个文件,并有用户的.profile源文件。 请注意,这会打开一堆蠕虫,除非你对所述文件的访问权限非常小心。