Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 为什么我必须先键入source env.sh,然后才能使用名为magada的地球物理处理软件?_Bash_Ubuntu_Path_Environment Variables_.profile - Fatal编程技术网

Bash 为什么我必须先键入source env.sh,然后才能使用名为magada的地球物理处理软件?

Bash 为什么我必须先键入source env.sh,然后才能使用名为magada的地球物理处理软件?,bash,ubuntu,path,environment-variables,.profile,Bash,Ubuntu,Path,Environment Variables,.profile,我最近在Ubuntu 1904中安装了一个名为Madagada的地球物理处理软件。程序的安装很顺利,我没有遇到任何问题。问题是为了使用马达加斯加的任何程序,我需要在马达加斯加目录中。在进行任何操作之前,必须键入source env.sh,以便为马达加斯加启用环境变量。我已经尝试在.bashrc和.profile中添加以下行,但我仍然需要在马达加斯加目录中,在其他任何操作之前,需要键入source env.sh来运行程序 shah@vbox:~$ echo 'export PATH=$PATH:/

我最近在Ubuntu 1904中安装了一个名为Madagada的地球物理处理软件。程序的安装很顺利,我没有遇到任何问题。问题是为了使用马达加斯加的任何程序,我需要在马达加斯加目录中。在进行任何操作之前,必须键入
source env.sh
,以便为马达加斯加启用环境变量。我已经尝试在
.bashrc
.profile
中添加以下行,但我仍然需要在马达加斯加目录中,在其他任何操作之前,需要键入
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=
有人可以帮助我如何正确地添加这个程序的路径,以便我可以从任何目录使用马达加斯加。
关于

您应该去掉您所做的更改(它们都是多余的和错误的),而只需添加

source $HOME/madagascar-2.0/env.sh
到shell的一个交互式启动文件的末尾。哪一个取决于Bash的具体配置方式,但如果您有
.Bash\u配置文件
,请尝试,否则可能是
.bashrc

更详细地说,Bash根据shell是登录shell还是交互式shell读取不同的启动文件。理想情况下,这应该在交互式登录shell中完成-登录,因为您只想做一次(子shell希望继承这些设置),而交互式是因为您只想并且需要在交互式会话中运行它。但是,具体的工作方式也取决于
env.sh
所包含的内容


您的
路径
不应该包含
env.sh
,因为它应该包含目录,而不是文件名;大概
env.sh
负责实际更新
路径。您的shell配置几乎肯定已经包含
导出路径
,因此也没有必要再这样做(多次!)。

这听起来像是一个咆哮。我想问题是如何避免所有这些废话,但你必须向最初的开发人员了解这一点。有用的软件!=用户友好的软件。您可以提供
源代码
的完整路径,如
源代码~/Madagada-2.0/env.sh
。然后它是否有效取决于我们看不到的细节。非常感谢@tripleee。你的建议对我有用。祝您愉快我刚刚在
.bashrc
.profile
中添加了
source~/magada-2.0/env.sh
。我不知道它到底做了什么,但好的是我可以从任何目录运行马达加斯加命令。请阅读
bash
的手册页,查看
source
正在做什么。