Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > 其他编程语言 > bash命令的优先级
【标  题】:bash命令的优先级
【关键字】:bash
【来  源】:http://blog.chinaunix.net/article.php?articleId=59236&blogId=6776

bash命令的优先级

Your Ad Here 没有次序,这个世界就不知是个什么样子了。

在bash中,各个命令是按照下面的次序进行查找和执行的:
1别名  由alias指定
2关键字 
3函数  由function(){}定义
4内置命令  builtin命令
5脚本或可执行程序  $Path和当前路径中的脚本或可执行文件
我们在编写bash时可以通过builtin、command和enable关键字改变命令的执行次序
builtin:只以内置命令运行
command:只以内置命令或$Path中的脚本和可执行文件运行
enable:与builtin相反,它屏蔽某一内置命令,从而允许某一脚本以内置命令的名称运行而无需给出全路径
enable -n cmd(屏蔽内置命令cmd)  enable cmd(允许内置命令cmd)  enable(打印允许命令列表)  enable -n(打印屏蔽命令列表)
作如下实验:
xk@linux:~/work> function pwd
> {
> echo "This is out func."
> }
xk@linux:~/work>
编写脚本pwd,内容如下:
#!/bin/bash
pwd(){
    echo "This is inside func"
    builtin pwd
}
pwd 
作如下操作:
xk@linux:~/work> chmod a+x pwd             为脚本加上执行权
xk@linux:~/work> pwd                              运行外部定义的pwd函数,优先级高
This is out func.
xk@linux:~/work> ./pwd                            指定全路径执行自编的pwd脚本
This is inside func
/home/xk/work
xk@linux:~/work> builtin pwd                     调用内置pwd
/home/xk/work
xk@linux:~/work> command pwd               调用内置/bin/pwd,因为在PATH变量中没有当前路径.
/home/xk/work
xk@linux:~/work> echo $PATH                   察看PATH变量
/home/xk/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin
xk@linux:~/work> export PATH=.:$PATH     添加当前路径至PATH的最前面,覆盖/bin/pwd,因为PATH是从前向后搜索目录
xk@linux:~/work> echo $PATH                   再次查看,.已经添加    
.:/home/xk/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin
xk@linux:~/work> command pwd               此时运行脚本pwd
This is inside func
/home/xk/work
xk@linux:~/work> enable -n pwd                屏蔽内置命令的pwd
xk@linux:~/work> unset -f pwd                  并且删除当前shell的pwd函数的定义
xk@linux:~/work> pwd                              因为内置命令被屏蔽,又没有函数,所以从PATH中寻找pwd并执行,所以执行当
This is inside func                                       前目录的pwd脚本
/home/xk/work
xk@linux:~/work>

关机指令:【上一篇】
Select语句的强大菜单能力:【下一篇】
【相关文章】
  • aix上安装bash
  • Bash 实例:探讨 ebuild 系统
  • 30分钟搞定BASH脚本编程
  • freebsd下使bash像linux那样不同颜色显示
  • 在 Bash/Tcsh Shell 底下的中文輸入
  • bash编程教学实例
  • bash编程中常犯的初级错误[转自waker趕hell版的帖子]
  • BASH Shell ~~!
  • bash 配置文件/提示符/改变 $PATH
  • [shell][最简单的] 写个bash游戏
  • 【随机文章】
  • 我自已来。
  • 利用万象来控制整个网吧
  • .Net中如何操作IIS(源代码)
  • 使用tidy_win32.zip转换GB2312编码的HTML页面
  • [MYSQL]視圖應用11/9
  • [转载]GBIC 说明
  • 国内第一个微软XNA官方帮助中文版-由中国XNA开发网2006年9月30日在国内最先隆重推出。
  • uClinux下移植Ne2000兼容的网卡驱动程序
  • 堆和栈的区别分析
  • 提升PHP执行速度全攻略(上)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.