export PATH="/Users/your_user/scala/bin:$PATH"
我知道我需要这样做来设置某些应用程序,但我不明白它到底起什么作用。
它如何让应用程序运行起来?
答案1
大多数情况下,当您通过图形用户界面运行程序时,您会双击与程序文件关联的图标。
但是,有时您需要(或更喜欢)通过在命令 shell(Mac OS X 上的终端)中输入程序名称来运行程序。当您这样做时,shell 会查找具有该名称的程序文件,如果找到,则运行它。 是PATH
一个变量,它告诉 shell 在哪里查找。
在 Unix 系统上,通常所有程序文件(无论它们来自哪个软件包)都放在一个目录中。/usr/bin
(这并不完全正确,因为还有 等/usr/local/bin
,但现在这并不重要。)并且PATH
最初设置为/usr/bin
,这样当您想要运行程序时,无论您在哪个目录中,如果您键入fooprogram
,shell 都会立即在 中查找它/usr/bin
,如果找到,则运行它。如果没有此功能,shell 将仅限于在当前目录中查找(这意味着您必须始终在程序目录中才能运行任何内容),或者在文件系统中的每个目录中查找(这将需要很长时间)。
可以将多个目录(用 : 字符分隔)添加到 PATH 变量,以便按顺序搜索所有目录。这是您的命令
导出 PATH="/Users/your_user/scala/bin:$PATH"
做。
您刚刚在 中安装了一个软件包,其中包含一些程序文件/Users/your_user/scala
。按照惯例,程序文件位于bin
子目录中。因此,为了允许您直接从命令 shell 运行这些程序,您需要添加/Users/your_user/scala/bin
以便 shell 也在那里查找。$PATH
代表 的现有值PATH
,因此如果PATH
最初是/usr/bin
,现在就是/Users/your_user/scala/bin:/usr/bin
。顺序很重要,因此如果/Users/your_user/scala/bin
和都/usr/bin
包含名为 的程序文件scala_prog
,它将运行第一个。
export
是一个命令,它使得这个新值PATH
在您之后运行命令 shell 时可用。
您(用户)可能不会真正从命令 shell 运行 scala 程序文件,但 scala 包本身可能需要从其自己的 shell 脚本中运行。在这种情况下,shell 脚本将尝试仅使用程序名称来运行程序,因此需要PATH
正确设置,就像您在命令 shell 提示符下键入它一样。
答案2
这是 Unix 命令,用于设置命令执行的搜索顺序。如果您输入位于 /Users/your_user/scala/bin 下的命令的名称,它将被执行。如果您没有输入该命令,则需要提供命令的完整路径名才能运行它。