Bash 如何在路径上“源”文件并使其完成?
我有一个shell脚本,我想用它运行Bash 如何在路径上“源”文件并使其完成?,bash,shell,Bash,Shell,我有一个shell脚本,我想用它运行source,它在我的路径上,所以如果我开始键入名称并点击tab,它会自动完成 foo.sh 但是如果我尝试这个 source foo (then hit the tab button) 它不会自动完成。它正在搜索我的工作目录,但没有搜索我的路径。是否有任何方法可以让它找到我路径中的文件 我有bash版本3.2.57(1)-release您可以使用bash内置命令“complete,compgen,compopt”来定制“source”的完成 链接-->
source
,它在我的路径上,所以如果我开始键入名称并点击tab,它会自动完成
foo.sh
但是如果我尝试这个
source foo (then hit the tab button)
它不会自动完成。它正在搜索我的工作目录,但没有搜索我的路径。是否有任何方法可以让它找到我路径中的文件
我有bash版本
3.2.57(1)-release
您可以使用bash内置命令“complete,compgen,compopt”来定制“source”的完成
链接-->您可以将其放入bashrc中:
complete -c source
-c
代表将在路径中有效搜索的命令名。但这要求文件是可执行的。您可以详细说明这一点,并编写一个自定义完成函数,该函数使用find
检索PATH中的所有shell脚本。“如果文件名不包含斜杠,则使用PATH中的文件名查找包含文件名的目录。”另请参见shopt
选项sourcepath
。