Linux 命令优先级 —— aliasfunction内部命令(make)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 命令优先级 —— aliasfunction内部命令(make)相关的知识,希望对你有一定的参考价值。

Linux 命令优先级 —— alias、function、内部命令(make)

make

  • 新建Makefile文件,在里面输入如下内容;
# Makefile内容
all:
@echo "Make Command echo : Hello "
  • 保存,执行 which make ,查看make命令的位置
$ which make
/usr/bin/make
  • 执行make,查看输出:
$ make
Make Command echo : Hello

function make

  • 新建文件envsetup.sh,在里面输入如下内容:
#!/bin/bash

function make(){
    echo "Function Make echo : Hello"
    make

    exit
}
  • 执行 source envsetup.sh

  • 执行make
$ make
Function Make echo : Hello
Function Make echo : Hello

……

此时可以看到,死循环了,在function make 里面调用的还是function make

alias make

  • 在~/bin/下新建makex,输入如下内容:
$ cat ~/bin/makex
#!/bin/bash

echo "Alias Make echo : Hello"
  • 设置别名:alias make=~/bin/makex

  • 执行make
$ make
Alias Make echo : Hello

说明:alias make 的优先级高于command make

  • 修改~/bin/makex 文件
#!/bin/bash

echo "Alias Make echo : Hello"
make
  • 执行make
$ make
Alias Make echo : Hello
Make Command echo : Hello

alias make 中可以直接调用内部命令make

  • 修改~/bin/makex
$ cat ~/bin/makex

#!/bin/bash

function make(){
    echo "Function Makex echo : Hello"
    command make
}

echo "Alias Make echo : Hello"
make
  • 执行make
$ make
Alias Make echo : Hello
Function Makex echo : Hello
Make Command echo : Hello

优先级:alias > function make > 内部命令make

function make 和 command make

  • 修改envsetup.sh文件
$ cat envsetup.sh
#!/bin/bash

function make(){
    echo "Function Make echo : Hello"
    command make
}
  • source envsetup.sh

  • 执行make
$ make
Function Make echo : Hello
Make Command echo : Hello

结果:
1、fucntion make 的优先级高于command make
2、在function 中可以调用内部make命令,但是要加上command

以上是关于Linux 命令优先级 —— aliasfunction内部命令(make)的主要内容,如果未能解决你的问题,请参考以下文章

Linux中 别名内部命令外部命令hash缓存表 系统调用时的优先级比较

基础LINUX学习与配置

Linux进程管理命令之调整进程优先级

Linux基础之-Bash命令优先级

Linux基础命令---调整程序优先级renice

Linux进程和进程优先级(top+ps+kill+renice+df+free命令)