x.sh
我在目录中创建了一个名为的文件,/etc/profile.d/
因此所有用户都应该可以访问它。我希望当我使用 command 在终端(登录用户)中更改当前用户时sudo su other_user
,我在文件中设置的那些变量x.sh
应该可以访问,但它们不能。如何根据需要将变量设置为可访问?
x.sh
我在目录中创建了一个名为的文件,/etc/profile.d/
因此所有用户都应该可以访问它。我希望当我使用 command 在终端(登录用户)中更改当前用户时sudo su other_user
,我在文件中设置的那些变量x.sh
应该可以访问,但它们不能。如何根据需要将变量设置为可访问?
/etc/profile
(因此/etc/profile.d
) 被读取用于登录 shell。sudo su other_user
不运行登录外壳。这是一种不好的做法,它会使环境被原始用户的变量污染。您应该改为执行以下任一命令:这两个加载都是
/etc/profile
因为它们启动登录 shell,并且都从相对干净的环境开始。但是,理想情况下,应尽可能设置变量
/etc/environment
。该文件应该由 读取su
,因此无论是否启动登录 shell,变量都将可用。但是,该文件不支持 shell 语法,因此如果您需要复杂的 shell 代码来设置变量,则不能使用它。以下如何永久设置环境变量·U&L
bash
会加载所以这是添加对所有用户有效的变量的正确位置。