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

[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

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

$ 	ime echo haha

以上是 Shell命令的执行优先级 的全部内容, 来源链接: utcz.com/z/510497.html

回到顶部