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

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

时间:2018-12-08 00:58:04      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:结果   lin   说明   which   循环   str   make   source   设置   

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 命令优先级 —— alias、function、内部命令(make)

标签:结果   lin   说明   which   循环   str   make   source   设置   

原文地址:http://blog.51cto.com/muyusen/2327747

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