在 OS X 上创建全局函数

在 OS X 上创建全局函数

我希望添加一些可以在任何目录中使用的基本全局函数。这可能吗?

假设我只想执行一个简单的测试命令:

say_hello () {
  echo "Hello World!"
}

是否有某个文件可以定义它,以便我可以在整个计算机上使用它?

答案1

听起来您可能想修改 $PATH 环境变量。您可以很容易地做到这一点,但man bash在遵循任何人的建议之前您应该阅读。bash启动时会读取几个配置文件,阅读手册页会告诉您这些文件的读取顺序。

在描述更改之前,请知道更改应该去哪里(几个配置文件中的哪一个)。我建议你使用这个:

~/.profile (其中~只是您的主目录的简写),

或者您可以考虑将更改放入此文件中:

~/.bash_profile

您应该在阅读后决定使用哪一个man bash

如果您选择的文件不在您的主目录中,您将通过输入以下命令来创建它:

touch ~/.profile(例如)

在改变你的道路之前,你应该知道现在是什么。这将告诉您当前路径是什么:

echo $PATH

您可能应该将该路径复制并粘贴到某处(作为注释行~/.profile恕我直言,将是一个不错的选择)。如果情况恶化,这将使恢复变得更容易。

要更改路径,您应该添加而不是替换它。路径变量的顺序很重要,因为这是 shell 搜索的顺序。您可以添加到路径的前端或后端,但对于您的情况,我建议添加到后端。让我们暂时更改一下:

export PATH=$PATH:~/your/pathyour/path您希望附加到路径的位置在哪里)

例如,如果您想将主目录中的文件夹添加~/myscripts到路径中,则命令如下:

export PATH=$PATH:~/myscripts

您可以通过以下方式检查是否有任何影响:

echo $PATH

您应该会在路径列表的末尾看到刚刚添加的路径

因此,如果您对此感到满意,请在编辑器中打开文件~/.profile,然后在文件末尾添加刚刚使用的行:

export PATH=$PATH:~/myscripts

就是这样。每次启动 shell 时,您添加的路径都将成为“环境”的一部分。如果您想再次更改它,只需编辑~/.profile以反映您的口味即可。

相关内容