当我将一个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源文件。 请注意,这会打开一堆蠕虫,除非你对所述文件的访问权限非常小心。