我在 Debian Linux 上运行 LXDE/Openbox。登录后我想:
- 将用户特定目录添加到 $PATH 变量 (A)
- 执行一些(非图形)命令(例如挂载目录)(B)
该设置应该适用于图形登录以及登录 shell(例如 SSH)。特别是关于扩展 $PATH 变量的部分似乎很棘手......
我理想的解决方案是将所有命令(A 和 B)放在单独的脚本文件 (F) 中,并将其来源.xsessionrc
(用于通过会话管理器进行图形登录)和.profile
(用于登录 shell)。从 F 中获取.profile
效果很好,但从 中获取.xsessionrc
似乎失败了。
.xsessionrc
因此,我采取了解决方法,直接在(以及在)中设置新的 $PATH并仅从和.profile
执行 F (现在仅包含命令 B)。这工作正常,但并不是很令人满意,因为我现在在和中出现了一些重复的命令 (A) 。.xsessionrc
.profile
.xessionrc
.profile
我是否必须执行一些魔法才能从中获取另一个文件.xsessionrc
,或者我的想法是否存在任何其他明显的缺陷?
答案1
没有理由按照标准采购文件采购命令,那.
不是source
(这是 tcsh、bash、ksh 和 zsh 也支持的 cshism,但不是标准的)无法在.xsessionrc
.
您必须确保源文件中的语法是标准sh
语法。
答案2
为什么你要在而.xsessionrc
不是在.bash_profile
shell 使用的任何其他文件中执行此操作登录(不要与 混淆.bashrc
,它是由每个 shell 获取的)?这里(Fedora)甚至有一个有用的评论User specific environment and startup programs
......
答案3
根据您的发行版,您可以添加脚本以在启动时自动运行。如果您使用 initscripts,它们将被添加到 rc.local (/etc/rc.local IIRC) 中,并且使用 systemd 我相信您会为它们创建一个服务文件,然后启用它,以便它在启动时运行。
对于 debian,它将是 initscripts,因此rc.local
.
安装应该/etc/fstab
在启动时运行。