继续问alias的问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
jcauchy
帖子: 22
注册时间: 2008-07-18 16:31

继续问alias的问题

#1

帖子 jcauchy » 2008-07-23 9:50

昨天我问了一个alias的问题,就是怎么实现:
cd 目录 = cd 目录 ; ls
大家都认为不能直接用alias,需要自己写脚本

但是今天我努力找到了.cshrc,打开看发现是使用
alias cd 'cd \!* ; echo $cwd ; ls'
在csh中这是可以实现的(因为我用过),但是在bash中alias cd='cd \!* ; echo $cwd ; ls',发现不行啊?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2008-07-23 9:56

cd \!*
不是说了。cd $*
语法都不同。

何必这样,alias的,都不支持tab补全了。你愿意牺牲补全?仅仅为了一个ls??
● 鸣学
头像
JangMunho
帖子: 1347
注册时间: 2006-01-18 12:55
来自: 也许真的没有人理解

#3

帖子 JangMunho » 2008-07-23 10:15

……晕,这两个shell的语法能一样么……
MacBook Pro 15" User
Cocoa Programmer
头像
jcauchy
帖子: 22
注册时间: 2008-07-18 16:31

#4

帖子 jcauchy » 2008-07-23 10:28

eexpress 写了:cd \!*
不是说了。cd $*
语法都不同。

何必这样,alias的,都不支持tab补全了。你愿意牺牲补全?仅仅为了一个ls??
对哦,在小题大做,都不能补全了
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#5

帖子 delectate » 2008-07-23 17:56

JangMunho 写了:……晕,这两个shell的语法能一样么……
:D
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#6

帖子 BigSnake.NET » 2008-07-23 17:59

csh 能用的不代表 bash 能用
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
gcheng.chatswood
帖子: 14
注册时间: 2008-07-22 9:56

#7

帖子 gcheng.chatswood » 2008-07-24 9:14

bash的alias不支持在替换文本中使用参数,如果需要的话,可以使用bash的函数。

代码: 全选

function mycd() {
  if cd "$1"; then
    echo "$PWD"
    ls
  fi
}
alias cd=mycd

不过说实话,这种trick没什么意思。
回复