enable

    enable [-a] [-dnps] [-f filename] [name …]

    • 禁用一到多个内建命令。

    • 启用一到多个内建命令。

    • 直接调用与禁用的内建命令同名且在路径下找到的外部命令。

    • 打印所有内建命令,无论是否禁用。

    • 打印处于启用状态的内建命令。
    • 打印处于启用状态的posix标准内建命令。

    • 打印处于禁用状态的posix标准内建命令。
    • 从动态库中加载内建命令。

    • 移除从动态库中加载的内建命令。

    选项

    参数

    filename:动态库文件名。

    name(可选):内建命令,可以为多个。

    返回值

    enable返回成功,除非name不是内建命令或有错误发生。

    Q:请问-f-d-p的演示呢?

    A:说明一下,-f-d限于个人能力没有找到合适的例子,如果您有更好的例子欢迎提pr; 经过我验证-p选项是否使用好像没有区别,可以比较和enable|cat -A 有什么区别。(注:cat -A用于显示不可见字符)

    Q:是否可以禁用enable自己?之后还能禁用或启用内建命令吗?

    1. 关于同名命令调用的优先级的知识,请先参考builtin命令的提示部分,然后继续阅读下面部分;

      当内建命令没有禁用时,如果要调用外部命令echo,只能这样写/usr/bin/echo

      当我们禁用了echo后,优先级顺序变成了这样:

      函数 > 外部命令

      如果执行命令的环境没有echo函数,那么调用的echo就是外部命令。