我有使用type -tshell脚本,但显然它最初是为bash而写的,在这台机器上,我在zsh上 ,它不工作。
我看到bash文档type -t :
如果使用了-t选项,type打印一个单词,它是'别名','函数','内build','文件'或'关键字'之一,如果名称是别名,shell函数,shell内置,磁盘文件或shell保留字。 如果找不到名称,则不会打印任何内容,types将返回失败状态。
但是在zsh中, type不接受-t选项,而实际上它是别名:
键入[-fpam] name …与whence -v相同。
从那里:
对于每个名称,指出如果用作命令名称将如何解释。 '-v'标志产生更详细的报告。 '-c'标志以csh格式打印结果,优先于'-v'。 '-f'标志会导致shell函数的内容被显示,否则,除非使用'-c'标志,否则不会发生。 即使是别名,保留字,shell函数或内置函数,“-p”标志也会search名称。 '-a'标志会在整个命令path中search所有名称。 使用'-m'标志,参数被当作模式(应该被引用),并且为与这些模式中的一个匹配的每个命令显示信息。
其中不包括所需的输出。 在zsh上获得en等效结果的一种方法? 更改shell不是这台机器上的一个选项。
由于zsh中的-w和-b中的输出是类似的(下表由个人testing构成,所以我build议小心使用)
type -t whence -w alias alias function function builtin builtin file command keyword reserved ? hashed ? none
在zsh中创build一个脚本似乎不难,它模仿了bash中的types-t的行为。 你甚至可以,例如通过别名,用zsh中的命令replacezsh中的内buildtypes