Linux 命令優先級 —— alias、function、內部命令(make)
阿新 • • 發佈:2018-12-08
內部命令 死循環 查看 保存 class envsetup cat command lan 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)