我认为找到这个问题的答案很容易,但我在网上找不到任何内容:
我在.bashrc中声明了一个函数。我想从脚本中调用该函数。如果我输入:
$> source scriptname
找到该功能。如果我尝试:
$> scriptname
找不到该功能。
此时我无法理解为什么bash想要让这个变得困难。有没有办法让“源”自动生成?
答案 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
而不使用“。”或'来源'。
希望这能回答你的问题。