源脚本作为命令

源脚本作为命令

由于某种原因(?),现在当我编写脚本时,它们通常不起作用,或者仅部分起作用,然后我尝试使用.or source,它们可以完美地工作。我不确定是什么导致了这种情况,因为脚本在很多方面都不同,很难隔离必须来源的内容才能使整个脚本正常工作。另外,我注意到,当我将内容从.bashrc别名和函数移动到脚本中时,几乎总是出现这种情况。

但对于我的实际问题,在上述情况下,“吞噬”源点的最佳方法是什么,这样您仍然可以将脚本用作单字命令,而不必每次都点击点?

答案1

如果您想要调用一个命令script来实际获取script文件而不是将其作为单独的进程运行,请创建一个函数:

script () { . /path/to/script; }

要使该函数永久存在,请将其添加到 shell 的相关 rc 文件中(例如~/.bashrcfor bash)。

答案2

最好有一个实际的例子(或者将“不起作用”的内容分解为一个例子)。

也就是说,当您source访问一个文件时,您将在与调用该操作的环境(shell)相同的环境(shell)中执行其内容。 sourceing 是一种能够在任意数量的脚本中包含变量的好技术。

如果您要运行的脚本不在您的 中PATH,则可以通过键入“点”、“斜杠”、“文件名”来引用当前路径(以便执行脚本)。这与“来源”完全不同。

相关内容