shell中对于命令的搜寻顺序
当你在shell命令行输入一条命令时,shell的搜寻顺序是如何的呢?当你的脚本名字和shell中的函数名字重名,shell是如何决定运行哪一个的?
在shell中,shell对于命令的搜寻优先级为:
1 Alias
2 keyword,如if
3 Function
4 Built-in,如cd
4 PATH中的脚本以及可运行程序
在shell中,有3个命令command,built-in,enable是专门来解决这种重名问题的。
command
command使shell只在Built-in以及PATH中搜寻命令,这个命令比较有用的两个option:
-v 打印要调起的命令的路径
-V 比-v选项更详细的信息
built-in
built-in使shell专门搜索Built-in命令
enable
enable命令可以关闭开始shell的Built-in命令,在enable后面直接接shell的Built-in命令,开启这个Built-in命令,如果使用了-n选项,就是关闭这个Built-in命令。如果enable只使用-n选项,不接任何命令,就打印所有被关闭的Built-in命令。除了-n选项,比较有用的选项还有:
-p 打印所有enable的Built-in命令
-a 打印所有的Built-in命令,并且带有开启/关闭信息
但是,最有效的避免冲突的方式,还是使用命令的绝对路径
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了