![源脚本作为命令](https://linux22.com/image/25389/%E6%BA%90%E8%84%9A%E6%9C%AC%E4%BD%9C%E4%B8%BA%E5%91%BD%E4%BB%A4.png)
由于某种原因(?),现在当我编写脚本时,它们通常不起作用,或者仅部分起作用,然后我尝试使用.
or source
,它们可以完美地工作。我不确定是什么导致了这种情况,因为脚本在很多方面都不同,很难隔离必须来源的内容才能使整个脚本正常工作。另外,我注意到,当我将内容从.bashrc
别名和函数移动到脚本中时,几乎总是出现这种情况。
但对于我的实际问题,在上述情况下,“吞噬”源点的最佳方法是什么,这样您仍然可以将脚本用作单字命令,而不必每次都点击点?
答案1
如果您想要调用一个命令script
来实际获取script
文件而不是将其作为单独的进程运行,请创建一个函数:
script () { . /path/to/script; }
要使该函数永久存在,请将其添加到 shell 的相关 rc 文件中(例如~/.bashrc
for bash
)。
答案2
最好有一个实际的例子(或者将“不起作用”的内容分解为一个例子)。
也就是说,当您source
访问一个文件时,您将在与调用该操作的环境(shell)相同的环境(shell)中执行其内容。 source
ing 是一种能够在任意数量的脚本中包含变量的好技术。
如果您要运行的脚本不在您的 中PATH
,则可以通过键入“点”、“斜杠”、“文件名”来引用当前路径(以便执行脚本)。这与“来源”完全不同。