【发布时间】:2015-09-17 21:41:20
【问题描述】:
我曾经使用 Debian 的替代系统来设置像 java, javac, javap 这样的“全局环境”,但我已经了解了它的缺点。
所以我加了
export JAVA_HOME=/opt/jdk/java
export PATH=$JAVA_HOME/bin:$PATH
到我的~/.bashrc,当我打开我的终端时,我可以按预期使用命令,但我的大多数 shell 脚本不再工作了。
正如您在下图中看到的,他们检查$JAVA_HOME 是否存在并执行以下命令,该命令什么都不做。当我输入 $JAVA_HOME/bin/java -version 时,它可以正常工作。如果我在终端中启动脚本,它也可以工作。
所以#!/bin/sh 似乎不是source .bashrc?将其更改为#!/bin/bash 并不能解决问题。
我尝试将export 命令添加到/etc/profile,但这似乎在启动/登录时没有得到sourced。
有人有想法或关键字吗?我认为解决方案很简单,但目前我被卡住了。
提前谢谢你!
更新:
在 bash 终端中使用 ./something.sh 启动脚本可以正常工作。右键单击并执行或“使用 bash 打开”(XFCE4 上下文菜单)什么都不做。
【问题讨论】:
-
如果我没记错的话,现在 debian 中默认的
sh应用程序是 dash 而不是 bash。这意味着/bin/sh将不会获取任何.bash_rc或.bash_profile,并且还将缺少许多其他功能。您可能想要更改默认 shell。 -
@RealSkeptic 这很有趣,似乎是解决方案,但不幸的是它没有用。但我有靠近的感觉……
-
你做了什么来改变默认的shell?
-
用另一个脚本包装脚本,该脚本记录到一个文件并在图形环境中运行,这样您就可以看到错误。例如 ./somescript.sh >somescript.log 2>./somescript.err
标签: java linux environment-variables