在 shell 脚本中使用时,source 命令不起作用

在 shell 脚本中使用时,source 命令不起作用

我正在使用一个安装程序,它在~/.bash_profile文件中添加一个环境变量。

当我启动码头服务器时,它无法找到该条目......

当我跑步时

$ source ~/.bash_profile

它重新加载~/.bash profile文件并且服务器成功启动,没有任何问题。

问题是我的客户不会启动新的 shell 会话,也不会手动刷新文件~/.bash_profile

我尝试source ~/.bash_profile在调用jetty服务器的启动脚本时调用的shell脚本中添加该命令,但它也不起作用。

还有其他方法可以重新加载~/.bash_profile当前会话吗?您可以向我提供的任何信息将不胜感激。

答案1

shell 脚本通常不由 bash 运行(除非您明确安排了这一点)。

请注意,在许多 Linux 系统上 /bin/sh 现在是dash,并且由于 是source从 导入的非标准 shell 命令csh,因此像 dash 这样的 shell 不支持它。

.只要您传递给它的文件参数不包含非标准扩展名,POSIX 定义的点命令 ( ) 就应该可以工作。

相关内容