52. 操作内置命令
builtin
builtin
命令用于显式调用 bash 内置命令。
假设您要在pwd
输出前面添加 "===>"
。 您可以创建一个名为 mypwd 的函数并将其添加到.bash_profile
中实现这一点。
$ vi ~/.bash_profile
function mypwd () {
echo -n "===>"
pwd
}
$ source ~/.bash_profile
$ mypwd
===>/home/ramesh
现在,让我们假设您想要覆盖默认pwd
,并在执行pwd
时调用自定义函数。
当然,您可以将.bash_profile
中的 mypwd 函数重命名为 pwd,但这种方法存在问题。 如果将自定义的 mypwd 函数重命名为 pwd,那么当您执行pwd
命令时,它将进入无限循环,因为它正在调用自身。 它将永远保持打印 "===>"
。
$ vi ~/.bash_profile
function pwd () {
echo -n "===>"
pwd
}
因此,当您从与内置函数同名的自定义函数引用 bash 内置函数时,您应该使用builtin
命令显式调用原始 bash 内置函数。
这是一个演示builtin
命令使用的示例。
$ vi ~/.bash_profile
function pwd () {
echo -n "===>"
builtin pwd
}
$ source ~/.bash_profile
$ pwd
===>/home/ramesh
enable
您可以使用enable
启用或禁用 bash 内置命令。
默认情况下,所有内置函数均已启用。 例如,当您输入别名时,它将执行alias
内置命令并显示输出。
要禁用内置的 bash 别名,请使用带有-n
选项的启用。 一旦禁用内置命令,当您尝试执行它时,bash 将显示 "command not found"
,如下所示。
$ vi ~/.bash_profile
$ alias
$ enable -n alias
$ alias
-bash: alias: command not found
要再次启用内置别名,请使用不带-n
选项的enable
。
$ enable alias
$ alias
enable -p
。