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命令,并且带有开启/关闭信息

 

 

但是,最有效的避免冲突的方式,还是使用命令的绝对路径

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值