为什么我必须输入 source env.sh 才能使用名为 Madagascar 的地球物理处理软件?

Why do I have to type source env.sh before I can use a geophysical processing software called Madagascar?

最近在Ubuntu1904安装了一个地球物理处理软件,叫Madagascar,程序安装很顺利,没有遇到什么问题。问题是为了使用马达加斯加的任何程序,我需要在马达加斯加目录中。在任何事情之前必须键入 source env.sh 以启用马达加斯加的环境变量。我试图在 .bashrc.profile 中添加以下行,但我仍然需要成为 Madagascar 目录,并且在执行任何其他操作之前需要键入 source env.sh 到 运行 程序。

shah@vbox:~$ echo 'export PATH=$PATH:/home/shah/madagascar-2.0/env.sh' >> ~/.bashrc

shah@vbox:~$ echo 'export PATH=$PATH:/home/shah/madagascar-2.0/env.sh' >> ~/.profile

shah@vbox:~$ source env.sh 

bash: env.sh: No such file or directory

shah@vbox:~$ sfpen

sfpen: command not found 

shah@vbox:~$ cd madagascar-2.0/ 

shah@vbox:~/madagascar-2.0$ source env.sh

shah@vbox:~/madagascar-2.0$ sfpen

NAME

 sfoglpen

DESCRIPTION

vplot filter for OpenGL.

SYNOPSIS

 sfoglpen colormask= red= green= blue= aspect= ppi= stretchy=n aalias=n   aawidth=1 mono=n endpause= cachepipe= shade= wantras= window= frame= overlay= invras= txsquare= serifs= background= redpow=1.0 greenpow=1.0 bluepow=1.0 dither= greyc=1.0 pixc=1.0 txfont= txprec= txovly= xcenter= ycenter= patternmult=1. pause=0 fatmult= rotate=0 txscale=1.0 mkscale=1.0 dashscale=1.0 scale=1.0 xscale=1.0 yscale=1.0 xshift=0. yshift=0. xwmax= ywmax= xwmin= ywmin= fat=0 bgcolor= erase= break= interact= style= size=

有人可以帮助我如何正确添加此程序的路径,以便我可以从任何目录使用 Madagascar。 问候

您应该删除所做的更改(它们既多余又错误),而只需添加

source $HOME/madagascar-2.0/env.sh

到您 shell 的一个交互式启动文件的末尾。哪一个取决于您的 Bash 配置的精确程度,但如果您有 .bash_profile,请尝试,否则可能 .bashrc.

更详细地说,Bash 根据 shell 是否为登录 shell and/or 交互式 shell 读取不同的启动文件。理想情况下,这应该在交互式登录中完成 shell - 登录因为你只想做一次(subshells 希望继承这些设置)和交互式因为你只想要并且需要 运行 这是在交互式会话中。但同样,究竟什么会起作用还取决于 env.sh 包含的内容。

您的 PATH 不应该包含 env.sh 因为它应该包含目录,而不是文件名;并且大概 env.sh 负责实际更新 PATH。您的 shell 的配置几乎肯定已经包含 export PATH,因此也无需再次(多次!)。