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。