`bashshell中的函数
在zshell中有一个方便的命令,返回所有可用函数的列表。该命令被方便地称为`bashshell中的函数,bash,function,Bash,Function,在zshell中有一个方便的命令,返回所有可用函数的列表。该命令被方便地称为函数。我在Bash中找不到类似的替代方案。我创建了一个快速且肮脏(完全不可接受)的函数来大致完成相同的任务,但它至少有一个明显的问题:因为它依赖于解析文件,所以必须列出要查找的所有文件(可能会过时)或给出一个表达式(保证提供您不想查看的文件,例如.bash\u history) 这里是函数,因为我知道如果我不发布它,有人会要求它,但我很确定这是一条死胡同,或者至少是错误的方法 functions() { grep "
函数
。我在Bash中找不到类似的替代方案。我创建了一个快速且肮脏(完全不可接受)的函数来大致完成相同的任务,但它至少有一个明显的问题:因为它依赖于解析文件,所以必须列出要查找的所有文件(可能会过时)或给出一个表达式(保证提供您不想查看的文件,例如.bash\u history
)
这里是函数,因为我知道如果我不发布它,有人会要求它,但我很确定这是一条死胡同,或者至少是错误的方法
functions() {
grep "^function " "$HOME/."{bashrc,bash_profile,aliases,functions,projects,variables} | sort | sed -e 's/{//' | uniq
}
我可以通过解析.bash_概要文件并获取所有源文件的列表,然后解析它们以获取函数来改进这种错误的方法,但当您将以下复杂情况添加到混合中时,这真的不值得:
或源文件
&&
或;
之后找到源代码:它不一定是一行中的第一件或唯一一件事function
(对于那些寻找重复问题的人来说,这是非常不同的,因为它要求一种只列出来自特定文件的函数的方法。)在
bash
中使用typeset-f
。在zsh
中,函数
只是同一个命令的同义词。typeset-f
也给出了函数定义,这是我更愿意避免的。typeset-f
列出了每个函数名,前面有declare-f
。函数s(){typeset-F | sed-e's/^declare-F/'}
有效。