小编Mic*_*lot的帖子

我应该在哪里导出环境变量,以便 bash/dash、交互式/非交互式、登录/非登录的所有组合都可以选择它?

这是问题的动机:

我在 Unity 桌面上使用 Ubuntu 12.04 LTS 2。在我的 .bashrc 文件中,我将几个目录附加到我的 PATH 变量并定义了一些环境变量,例如 JAVA_HOME。当我从终端启动应用程序(运行 bash,我的默认 shell)时,这很好用,但是对于使用 Unity 启动器的几个快捷方式,它们运行的​​应用程序似乎被定义为使用 #!/bin/sh,别名为 /bin/dash,并且它们不会获取 ~/.bashrc 或 ~/.profile 的内容。

我想我可以更改所有这些快捷方式以使用 /bin/bash 而不是 /bin/sh 来强制它接受 .bashrc 更改,但这似乎真的很hacky。

鉴于 Ubuntu 12.04(默认情况下)将 /bin/sh 别名为 /bin/dash 并且我的默认 shell 是 /bin/bash,是否有一个地方我可以选择修改 PATH 并定义环境变量(如果我想要的话)在所有这些情况下在场:

  1. 每当我创建一个非登录 bash shell(统一使用终端)
  2. 每当我创建一个登录 bash shell(例如,通过 ssh 远程登录)
  3. 每当我使用 Unity 应用程序启动器时(假设启动器使用 /bin/sh)。
  4. 每当执行 cron 作业时(假设 /etc/crontab 中的 SHELL=/bin/sh)。

如果我理解正确,我猜是:

  • (1)/(2) 和 (3)/(4) 是不同的,因为 (1)/(2) 是 bash 而 (3)/(4) 是破折号。
  • (1) 和 (2) 是不同的,因为 bash …

linux bash ubuntu-12.04

11
推荐指数
2
解决办法
5968
查看次数

标签 统计

bash ×1

linux ×1

ubuntu-12.04 ×1