LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1017|回复: 6

关于在SHELL中使用基本命令别名的问题?

[复制链接]
发表于 2007-1-19 10:06:50 | 显示全部楼层 |阅读模式
在启动脚本中定义ls的别名:
alias ls='ls -l'
在启动之后,如果我写一个脚本:
#!/bin/bash
ls
那么结果是什么样的?应该是ls的结果还是ls -l的?
我试了一下,发现执行的不是ls的别名!这个在bash的手册上有描述吗?
之后我使用下面脚本,输出也不是ls的别名:
#!/bin/bash
alias ls='ls -l'
ls
请问高手们,能给个理由吗?
发表于 2007-1-19 11:17:04 | 显示全部楼层
不清楚,而且我发现
alias ls='ls -l';ls没有马上生效
alias ls='ls -l'
ls
此时ls生效,不明白这两次执行有什么不同。
回复 支持 反对

使用道具 举报

发表于 2007-1-23 22:07:48 | 显示全部楼层
我在学Bash时曾看到, she l l 执行命令时的查找顺序是先查找别名,然后函数,继而内部命令,最后是可执行程序. 所以说如果你为ls重新设置了别名,那么你在终端输入ls时执行的是你设置的别名.比如(我的Linux版本是FC4),

  1. $ uname
  2. $ Linux
  3. $ alias uname='uname -r'
  4. $ uname
  5. $ 2.6.11-1.1369_FC4
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-24 09:15:43 | 显示全部楼层
但实际情况差不是这样,你可以按我上面的描述试一下,不是这样。
我觉得可能是登录SHELL和非登录SHELL之间的差别造成的!
回复 支持 反对

使用道具 举报

发表于 2007-1-25 18:20:49 | 显示全部楼层
我觉得stoneman说的shell执行顺序是对的,以前见过,但是记不住顺序,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-29 09:29:17 | 显示全部楼层
顺序是没错,但现在是那个顺序不起作用了!
这个问题俺现在还没解决呢!
希望有高手指点一下!多谢!
回复 支持 反对

使用道具 举报

发表于 2007-1-29 10:28:03 | 显示全部楼层
这里提供答案了
http://bbs.chinaunix.net/viewthread.php?tid=888495

Iambitious也不转过来给大伙看看呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表