当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 请教各位高手alias使用
帖子发表于 : 2008-07-22 10:51 
头像

注册: 2008-07-18 16:31
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
我的shell是bash,alias普通用法我是知道的,但是给多个命令别名(多个命令间用分号" ; "隔开),我有一个地方不会,例如:
给mkdir和ls别名为md
alias md='mkdir;ls'
然后使用md aa(创建文件夹aa并显示当前目录下的文件)
结果显示错误:mkdir缺少操作符

其实小弟不懂之处在于如何将alias后的操作符传递到mkdir之后,呵呵~

还有ubuntu里man alias,显示alias没有帮助文档,帮助文档源里有下载吗?谢谢~~


最后由 jcauchy 编辑于 2008-07-22 11:08,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-07-22 10:56 
头像

注册: 2006-01-18 12:55
帖子: 1347
地址: 也许真的没有人理解
送出感谢: 0 次
接收感谢: 1
不要自作聪明,我知道你是什么意思,你是不是认为:
md aa会被解析成mkdir aa; ls aa?
这是不可能的,它只能被解析成
mkdir ; ls aa
因此提示缺少操作符,电脑没那么智能。
之所以没有man page是因为它是一个内部命令,就像cd命令,内部命令不可能有man page。


_________________
MacBook Pro 15" User
Cocoa Programmer


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:02 
头像

注册: 2006-04-29 10:51
帖子: 105
送出感谢: 0 次
接收感谢: 0 次
你想要实现的功能不是可以用shell脚本吗?


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:05 
头像

注册: 2008-07-18 16:31
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:06 
头像

注册: 2008-07-18 16:31
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
yawsh 写道:
你想要实现的功能不是可以用shell脚本吗?

我希望可以写在.bashrc中


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:10 
头像

注册: 2006-01-18 12:55
帖子: 1347
地址: 也许真的没有人理解
送出感谢: 0 次
接收感谢: 1
jcauchy 写道:
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的

我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。


_________________
MacBook Pro 15" User
Cocoa Programmer


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:12 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
jcauchy 写道:
yawsh 写道:
你想要实现的功能不是可以用shell脚本吗?

我希望可以写在.bashrc中
直接写脚本到alias就是,一行而已,调用$*等当参数。


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:14 
头像

注册: 2006-01-18 12:55
帖子: 1347
地址: 也许真的没有人理解
送出感谢: 0 次
接收感谢: 1
eexpress 写道:
jcauchy 写道:
yawsh 写道:
你想要实现的功能不是可以用shell脚本吗?

我希望可以写在.bashrc中
直接写脚本到alias就是,一行而已,调用$*等当参数。

对,不过我觉得他所希望的不是这样,但事实上想要满足他的要求只能这样了。


_________________
MacBook Pro 15" User
Cocoa Programmer


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:19 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
JangMunho 写道:
jcauchy 写道:
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的

我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。


可以覆盖吗?


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:23 
头像

注册: 2006-01-18 12:55
帖子: 1347
地址: 也许真的没有人理解
送出感谢: 0 次
接收感谢: 1
BigSnake.NET 写道:
JangMunho 写道:
jcauchy 写道:
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的

我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。


可以覆盖吗?

不知道,也没打算试验。
我觉得即便是搜索路径中存在一个叫cd的程序,shell也要优先执行它的内部命令,因此能覆盖的可能性不大。
PS:我应该看看bash的源代码就什么都明白了。


_________________
MacBook Pro 15" User
Cocoa Programmer


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:26 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
代码:
my_cd () { cd "$@" ; ls ; };
alias cd=my_cd


注意只能设定一次, 不然就递归了


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:28 
头像

注册: 2006-01-18 12:55
帖子: 1347
地址: 也许真的没有人理解
送出感谢: 0 次
接收感谢: 1
BigSnake.NET 写道:
代码:
my_cd () { cd "$@" ; ls ; };
alias cd=my_cd


注意只能设定一次, 不然就递归了

呵呵,那样就很搞笑了。


_________________
MacBook Pro 15" User
Cocoa Programmer


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:32 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
JangMunho 写道:
jcauchy 写道:
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的

我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
/usr/local/bin下建立一个cd就是。cd $*;ls

$PATH按照次序来执行的。


_________________
● 鸣学


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:37 
头像

注册: 2008-07-18 16:31
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
我用过那个人电脑后觉得很方便,就把他的.cshrc文件直接拷到我的电脑上了,结果我也可以这样用了,我觉得不是脚本吧,当时我忘记看.cshrc了
现在想这么设置,却不知道怎么设置,那个人是我的师兄,现在已经毕业了


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2008-07-22 11:40 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
eexpress 写道:
JangMunho 写道:
jcauchy 写道:
以前我用过别人一个系统,它每次cd到一个目录下就会自动显示该目录下的文件
比如cd /home,它就相当于先cd /home然后ls,我就是不知到他是怎么设置别名的

我恐怕不是别名,而是使用一个cd脚本掩盖掉了shell本身的cd。
/usr/local/bin下建立一个cd就是。cd $*;ls

$PATH按照次序来执行的。


试过了, 优先执行内部命令


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译