enable

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选项是否使用好像没有区别,可以比较<code>enable -p|cat -A</code></code><code>和</code><code><code>enable|cat -A</code></code><code> 有什么区别。(注:</code>cat -A用于显示不可见字符)

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

A:可以;不能。

注意

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

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

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

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

    函数 > 外部命令

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

  2. 该命令是bash内建命令,相关的帮助信息请查看 help 命令。

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/enable/

(0)
AuroraAurora站点维系者
上一篇 2023年 12月 14日 下午6:28
下一篇 2023年 12月 14日 下午6:28

相关推荐

  • 并发入门

    文章目录并发入门并发是什么?并行是什么?并行和并发有何区别?从技术上看并发和并行Go 对并发的支持 并发入门 上一节:第十九篇 接口二下一节:第二十一篇 协程 欢迎来到第 20 个…

    2023年 12月 5日
  • Helm | Helm 依赖列表

    文章目录helm dependency list简介可选项从父命令继承的命令请参阅 helm dependency list 列举指定chart的依赖 简介 列举所有的chart中…

    入门教程 2023年 12月 14日
  • bzip2

    文章目录bzip2补充说明语法选项参数实例 bzip2 将文件压缩成bz2格式 补充说明 bzip2命令 用于创建和管理(包括解压缩)“.bz2”格式的压缩包。 bzip2 采用 …

    入门教程 2023年 12月 6日
  • continue

    文章目录continue概要主要用途参数返回值例子注意 continue 结束本次循环,继续执行下一个for,while或until循环。 概要 continue [n] 主要用途…

    入门教程 2023年 12月 7日
  • 接口(二)

    文章目录接口实现接口:指针接受者与值接受者实现多个接口接口的嵌套接口的零值 接口 上一节:第十八篇 接口一下一节:第二十篇 并发入门 欢迎来到第 19 个教程。接口共有两个教程,这…

    2023年 12月 5日
  • dris

    文章目录dris补充说明语法选项 dris 显示和清空目录堆栈中的内容 补充说明 dris命令 用于显示和清空目录堆栈中的内容。 语法 dris(选项) 选项 +n:显示从左边算起…

    入门教程 2023年 12月 7日
  • 29. Defer

    欢迎来到 Golang 系列教程的第 29 篇。 文章目录什么是 defer?示例延迟方法实参取值(Arguments Evaluation)defer 栈defer 的实际应用 …

    2023年 12月 5日
  • pvcreate

    文章目录pvcreate补充说明语法选项参数实例 pvcreate 将物理硬盘分区初始化为物理卷 补充说明 pvcreate命令 用于将物理硬盘分区初始化为物理卷,以便LVM使用。…

    入门教程 2024年 3月 1日
  • lsattr

    文章目录lsattr补充说明语法选项参数实例 lsattr 查看文件的第二扩展文件系统属性 补充说明 lsattr命令 用于查看文件的第二扩展文件系统属性。 语法 lsattr(选…

    入门教程 2023年 12月 19日
  • unset

    文章目录unset概要主要用途选项参数返回值例子注意 unset 删除指定的shell变量或函数。 概要 unset [-f] [-v] [-n] [name …] 主要用途 …

    入门教程 2024年 3月 11日

发表回复

登录后才能评论
Translate »