LinuxSir.cn,穿越时空的Linuxsir!

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

关于alias不能在shell script中使用

[复制链接]
发表于 2005-10-24 19:57:08 | 显示全部楼层 |阅读模式
我用的是suse 10, sh是bash。
系统自定义有一个alias: ll='ls -l'
alias | grep ll的结果是:alias ll='ls -l'
which ll没有输出

我在一个script:make_num_file.sh中使用ll:
echo `ll 一个文件`
出错提示是
./make_num_file.sh: line 16: ll: command not found

这是为什么呢

能解说一下alias和command的区别吗?
which是不是本来就找不到alias?
alias是不是本来就不能在script中使用?
发表于 2005-10-24 21:35:05 | 显示全部楼层
Post by ehu
我用的是suse 10, sh是bash。
系统自定义有一个alias: ll='ls -l'
alias | grep ll的结果是:alias ll='ls -l'
which ll没有输出

我在一个script:make_num_file.sh中使用ll:
echo `ll 一个文件`
出错提示是
./make_num_file.sh: line 16: ll: command not found

这是为什么呢

能解说一下alias和command的区别吗?
which是不是本来就找不到alias?
alias是不是本来就不能在script中使用?

man bash, 查一下alias的用法,如果没猜错,alias是bash自带的命令,在bash中对执行程序所用到的一个别名,如你提到的那个alias ll=ls -l命令,但在脚本中不能这样写,我就因为这样做导致无法执行。还得改回原来的执行命令。command只在当前shell环境下有用,而alias只对执行程序运行时所起的一个别名,是为了好记。
EG: alias rpmq=rpm -ql | grep
回复 支持 反对

使用道具 举报

发表于 2005-10-24 22:01:59 | 显示全部楼层
或者到这里看一下,有没有你需要的:
http://www.linuxsir.cn/bbs/showthread.php?t=99465&page=3&pp=15
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-24 22:14:29 | 显示全部楼层

不是甚解

谢谢解答。
虽然不是甚解,
但是,
继续学习ing。
回复 支持 反对

使用道具 举报

发表于 2005-10-24 23:23:38 | 显示全部楼层
1,which是在预定的路径($PATH)中查找你要找的,
2,看一下置顶精华中
http://www.linuxsir.cn/bbs/showthread.php?t=99465
回复 支持 反对

使用道具 举报

发表于 2005-10-25 13:15:05 | 显示全部楼层
Post by ehu
我用的是suse 10, sh是bash。
系统自定义有一个alias: ll='ls -l'
alias | grep ll的结果是:alias ll='ls -l'
which ll没有输出

我在一个script:make_num_file.sh中使用ll:
echo `ll 一个文件`
出错提示是
./make_num_file.sh: line 16: ll: command not found

这是为什么呢

能解说一下alias和command的区别吗?
which是不是本来就找不到alias?
alias是不是本来就不能在script中使用?

  1. . make_num_file.sh
  2. source make_num_file.sh
复制代码

在当前shell环境中便可使用。alias是command的别名使用,传不到子shell. 要在子shell中用,必须重新定义。
回复 支持 反对

使用道具 举报

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

本版积分规则

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