码迷,mamicode.com
首页 > 系统相关 > 详细

Shell命令的执行优先级

时间:2019-11-06 21:15:26      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:code   优先级   function   com   int   time()   别名   tin   技术   

Shell内置命令、外部命令、别名、函数、保留关键字的优先级

在Shell中,有5种可调用的东西:别名(alias)、函数(function)、shell保留关键字、shell内置命令、外部命令。

如果它们同名了,那么优先调用谁呢?可使用type -a cmd查看。

# 内置命令、别名、函数、外部命令
$ alias kill="echo haha"
$ function kill()(echo hehe)

$ type -a kill
kill is aliased to `echo haha'   # 1.别名kill
kill is a function               # 2.函数kill
kill () 
{ 
    ( echo hehe )
}
kill is a shell builtin      # 3.内置kill
kill is /usr/bin/kill        # 4.外部kill

# 别名、函数、保留关键字、外部命令
$ alias time="echo haha"
$ function time()(echo hehe)  

$ type -a time
time is aliased to `echo haha'  # 1.别名
time is a shell keyword         # 2.保留关键字
time is a function              # 3.函数
time () 
{ 
    ( echo hehe )
}
time is /usr/bin/time            # 4.外部命令

技术图片

例如:

# 调用外部命令time
[root@me ~]$ command time echo haha
[root@me ~]$ /usr/bin/time echo haha

# 调用内置命令printf
[root@me ~]$ alias printf="echo hehe"
[root@me ~]$ printf
hehe
[root@me ~]$ builtin printf 'hello'
hello

此外,可以使用反斜线对命令转义,使其跳过当前最高的优先级。但是,反斜线转义的效果可能不会按照预料中顺序的执行,所以最好不要用反斜线转义。

$ \time echo haha

Shell命令的执行优先级

标签:code   优先级   function   com   int   time()   别名   tin   技术   

原文地址:https://www.cnblogs.com/f-ck-need-u/p/11808712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!