Shell命令的执行优先级
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 [ ~]$ command time echo haha [ ~]$ /usr/bin/time echo haha # 调用内置命令printf [ ~]$ alias printf="echo hehe" [ ~]$ printf hehe [ ~]$ builtin printf 'hello' hello
此外,可以使用反斜线对命令转义,使其跳过当前最高的优先级。但是,反斜线转义的效果可能不会按照预料中顺序的执行,所以最好不要用反斜线转义。
$ \time echo haha
相关推荐
firefaith 2020-10-30
以梦为马不负韶华 2020-10-20
wangzhaotongalex 2020-09-22
jarrygao 2020-11-02
woaimeinuo 2020-10-21
laisean 2020-09-01
libao 2020-09-16
卖口粥湛蓝的天空 2020-09-15
tianhuak 2020-11-24
huha 2020-10-16
lianshaohua 2020-09-23
laisean 2020-11-11
zhangjie 2020-11-11
大牛牛 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
CARBON 2020-10-20
彼岸随笔 2020-10-20
lianshaohua 2020-10-20