在没有'source'的情况下调用脚本中的函数

时间:2011-11-19 19:33:30

标签: bash

我认为找到这个问题的答案很容易,但我在网上找不到任何内容:

我在.bashrc中声明了一个函数。我想从脚本中调用该函数。如果我输入:

$> source scriptname

找到该功能。如果我尝试:

$> scriptname

找不到该功能。

此时我无法理解为什么bash想要让这个变得困难。有没有办法让“源”自动生成?

2 个答案:

答案 0 :(得分:0)

您可以使用./scriptname执行,但这会创建一个新进程,因此脚本完成后所有已定义/导出的变量,别名和所有内容都将丢失。

继续使用source scriptname. scriptname

答案 1 :(得分:0)

如果您需要通过名称直接调用它,您可以为它编写一个小的shell脚本并将其放在PATH的某个目录中。

e.g。文件脚本名:

#!/bin/bash

echo "Starting `basename $0`"
# Other processing
echo "Completed `basename $0`"

将其放在/usr/bin等目录中,然后您需要从命令行调用scriptname而不使用“。”或'来源'。

希望这能回答你的问题。