2016-07-28 51 views
1

我确定这是本网站上最常遇到的一个最尴尬的问题,但我对linux非常陌生,并且有点不在我的深处。我正在关闭这个tutorial here,并被困在“添加路径”并验证步骤。

对于这个教程告诉我使用这个:

export PATH=${PATH}:${DTITK_ROOT}/bin:${DTITK_ROOT}/utilities:${DTITK_ROOT}/scripts 

我已经定义DTITK_ROOT上,具有上述说明几个问题。

  1. $ {}应该留在DTITK_ROOT的周围吗?
  2. 我的DTITK_ROOT是我提取程序的文件的完整路径(我认为这是正确的术语),我应该改变它吗?
  3. 在那种情况下,我为$ {PATH}写什么?我知道我应该用某种东西代替它,但我不知道是什么。我试过的所有东西都没有通过验证步骤。

对不起,如果它看起来像一个愚蠢或真正简单的问题,但我甚至不知道任何关键字谷歌为了找到如何得到答案。

回答

0
  1. 是的。这是如何访问存储在DTITK_ROOT中的路径。这被称为参数扩展。你可以阅读更多关于它here

  2. 不,不要改变任何东西。此外,与相对路径相比,更常用的术语是绝对路径。绝对路径是从根目录/开始的路径。相对路径是您当前工作目录的路径。您可以阅读有关一般路径的更多信息,以及绝对路径和相对路径之间的差异here

  3. 你不用任何东西代替它。参数扩展再次发挥作用,并将被已存储在路径变量中的内容替换。所以这个命令实际上是把你的路径变量,添加一些更多的路径,然后将它存储回你的路径变量。如果您不知道,路径变量将包含您希望执行的所有可执行文件的路径,而不输入完整路径。 Here是一个很好的讨论路径变量,以及其他环境变量。

+1

你的评论是非常丰富和有益的。它现在按预期工作。 我不能够感谢你! –

+0

没问题!祝你的项目好运。 –

0

第一个命令需要路径

export DTITK_ROOT=mypathonSystem/dtitk

第二个命令

export PATH=${PATH}:${DTITK_ROOT}/bin:${DTITK_ROOT}/utilities:${DTITK_ROOT} /脚本

照顾我也不太清楚,但我认为第二个命令应该运行的是因为你定义DDTITK_ROOT在第一个命令 $ {PATH}让系统知道可以在哪里找到资源

你有没有尝试运行第一个命令,然后运行第二个命令未修改?

+0

运行未经修改的伎俩,谢谢。 –

0
  1. $ {}应该留在DTITK_ROOT的周围吗?

是的。对于shell而言,在这里并不重要,因为$ DTITK_ROOT后面的/就足以表示我们已经到达变量名的末尾,但是在$ {DTITK_ROOT}中明确指出变量名是DTITK_ROOT,而不是那些加上任何字符可能在它的结尾。其他允许你编写shell命令来执行的程序(例如make)可能不那么容易 - make会认为$ DTITK_ROOT将是$ D的值,后面是字面字符TITK_ROOT。因此,习惯于围绕长于单个字符的shell变量名来使用{}是一种好习惯。

  1. 我的DTITK_ROOT是我提取程序的文件的完整路径,我应该改变它吗?

如果您的意思是您提取程序的目录的完整路径,那么您应该使用这个。我假设你有类似“export DTITK_ROOT =/Users/huiz/unix/dtitk”(每个例子)。

您可以执行的操作是通过执行"echo ${DTITK_ROOT}"来验证DTITK_ROOT的值是否可用,以验证它是否具有适当的值。