Linux命令大全






enable

作者:@kklinux
本文为作者原创,转载请注明出处:https://www.cnblogs.com/linuxcmd/p/enable.html


    enable

    启动或禁用shell内建命令

    概要

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

    主要用途

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

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

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

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

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

    • 打印处于禁用状态的内建命令。

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

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

    • 打印posix标准内建命令,无论是否禁用。

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

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

    选项

    -a 打印所有内建命令,无论是否禁用。
    -d 移除从动态库中加载的内建命令。
    -n 禁用内建命令或显示已禁用的内建命令。
    -p 以可复用格式打印。
    -s 只显示处于启动状态的posix标准内建命令。
    -f 动态库中加载内建命令。
    -ns 打印处于禁用状态的posix标准内建命令。
    -as 打印posix标准内建命令,无论是否禁用。
    

    参数

    filename:动态库文件名。

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

    返回值

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

    例子(以下内容限于篇幅不再列出返回值部分)

    # posix special builtin
    # 假设没有任何内建命令被禁用
    # 禁用两个posix标准内建命令
    enable -n set source
    # 打印处于禁用状态的posix标准内建命令
    enable -ns
    # 打印posix标准内建命令,无论是否禁用。
    enable -as
    # 打印处于启用状态的posix标准内建命令
    enable -s
    
    # 假设没有任何内建命令被禁用
    # 禁用一到多个内建命令
    enable -n echo pwd
    # 打印所有内建命令,无论是否禁用。
    enable -a
    # 打印处于启用状态的内建命令
    enable
    # 打印处于禁用状态的内建命令
    enable -n
    # 启用一到多个内建命令
    enable pwd
    

    Q&A

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

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

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

    A:可以;不能。

    注意

    linux shell命令执行时,shell总是先在自己的shell builtin中查找该命令,如果找到则执行该命令;如果找不到该命令,则会从环境变量$PATH指定的路径中依次去查找待执行的命令。看起来好像没有办法编写用户自己的命令来替代shell builtin命令。幸运的是,有了enable命令我们就能做到了。

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

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

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

    函数 > 外部命令

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

    1. 该命令是bash内建命令,相关的帮助信息请查看 help 命令。
    posted @   linuxcmd  阅读(216)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
    · SQL Server 2025 AI相关能力初探
    · AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
    · 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
    · Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
    点击右上角即可分享
    微信分享提示