龙空技术网

如何在运行命令时忽略别名、函数或内建命令?

SuperOps 48

前言:

此时我们对“别名解析怎么设置”大致比较讲究,你们都想要分析一些“别名解析怎么设置”的相关内容。那么小编同时在网上汇集了一些对于“别名解析怎么设置””的相关资讯,希望姐妹们能喜欢,姐妹们快快来了解一下吧!

问题背景

别名、函数、内建命令和外部工具都可以同时使用相同的名称进行定义。有时需要明确指定Shell在绕过其他选项时解析哪种,这个就是今天我们分享的主题。

今日分享

绕过别名的方法

正常解析命令,忽略别名:

\name
\unalias namename

清除所有别名:

\unalias -a

在bash中,默认情况下,在非posix模式下禁用别名扩展。

优先调用内建命令或外部命令

绕过别名和函数:

\command name

如果路径未知/不可靠:

\command -p -- name "${args[@]}"

本文剩余部分假设已禁用或通过其他方式减轻了别名扩展。

仅调用内建命令的优先级

function my_builtin {    builtin my_builtin "$@"}
通过路径解析调用外部工具,绕过内建命令和/或函数
"$(type -P name)" "${args[@]}"
调用特定的外部工具

指定包含至少一个斜杠的完整或相对路径名来执行也是绕过别名的一种方案,当然了这个是最直接的方式。

如果您觉得文章内容对你有一点帮助可以关注我,我在头条平台会持续分享更多实用的shell技巧和最佳实践,如果想系统的快速学习shell的各种高阶用法和生产环境避坑指南可以看看《shell脚本编程最佳实践》专栏,专栏里有更多的实用小技巧和脚本代码分享。

标签: #别名解析怎么设置