为什么我无法从 .xsessionrc 获取脚本文件?

为什么我无法从 .xsessionrc 获取脚本文件?

我在 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_profileshell 使用的任何其他文件中执行此操作登录(不要与 混淆.bashrc,它是由每个 shell 获取的)?这里(Fedora)甚至有一个有用的评论User specific environment and startup programs......

答案3

根据您的发行版,您可以添加脚本以在启动时自动运行。如果您使用 initscripts,它们将被添加到 rc.local (/etc/rc.local IIRC) 中,并且使用 systemd 我相信您会为它们创建一个服务文件,然后启用它,以便它在启动时运行。

对于 debian,它将是 initscripts,因此rc.local.

安装应该/etc/fstab在启动时运行。

相关内容