Bash 在脚本中调用不带';来源';

Bash 在脚本中调用不带';来源';,bash,Bash,我以为很容易找到这个问题的答案,但我在网上什么也找不到: 我在.bashrc中声明了一个函数。我想从脚本中调用该函数。如果我键入: $> source scriptname 找到了该函数。如果我尝试: $> scriptname 找不到该函数 在这一点上,我看不出bash为什么要让这变得困难。是否有办法使“源代码”自动生成?您可以使用/scriptname执行,但这将创建一个新进程,因此脚本完成后,所有定义/导出的变量、别名和所有内容都将丢失 继续使用源脚本名或。scriptna

我以为很容易找到这个问题的答案,但我在网上什么也找不到:

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

$> source scriptname
找到了该函数。如果我尝试:

$> scriptname
找不到该函数


在这一点上,我看不出bash为什么要让这变得困难。是否有办法使“源代码”自动生成?

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


继续使用
源脚本名
。scriptname

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

e、 g.文件名:

#!/bin/bash

echo "Starting `basename $0`"
# Other processing
echo "Completed `basename $0`"
将它放在一些目录中,如
/usr/bin
,然后需要从命令行调用
scriptname
,而不使用“.”或“source”


希望这能回答您的问题。

是否有不使用
源代码的原因?它是一种将一个脚本的内容导入另一个脚本的方法。Ksh93+具有FPATH变量。也许Bash4已经添加了这一点。有关FPATH的信息,请参阅。祝你好运。接受你的问题的答案,让人们知道问题已经解决。我不想使用“.”或“源代码”的原因只是为了方便,我正在围绕常用命令创建一系列“包装器”,实际上是为了用我喜欢的默认值快速创建它们的简化版本,并且有一个非常简单和一致的参数列表。由于速度是这一点的关键,如果可能的话,任何增加键入的内容都要避免。因此,请使用缩写形式——点后跟空格,再后跟文件名!我不明白你的“速度”论点。。你这么说是因为你必须输入
source
它会变慢吗?事实并非如此。好吧,如果我做了,我做了。但我不知道为什么bash对事情这么难。谢谢大家。我不知道有哪种语言可以通过输入源代码的名称来导入源代码。我不认为这里有什么困难,如果你有困难,你的心态就错了。啊,请接受答案。