分页: 1 / 1

继续问alias的问题

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

但是今天我努力找到了.cshrc,打开看发现是使用
alias cd 'cd \!* ; echo $cwd ; ls'
在csh中这是可以实现的(因为我用过),但是在bash中alias cd='cd \!* ; echo $cwd ; ls',发现不行啊?

发表于 : 2008-07-23 9:56
eexpress
cd \!*
不是说了。cd $*
语法都不同。

何必这样,alias的,都不支持tab补全了。你愿意牺牲补全?仅仅为了一个ls??

发表于 : 2008-07-23 10:15
JangMunho
……晕,这两个shell的语法能一样么……

发表于 : 2008-07-23 10:28
jcauchy
eexpress 写了:cd \!*
不是说了。cd $*
语法都不同。

何必这样,alias的,都不支持tab补全了。你愿意牺牲补全?仅仅为了一个ls??
对哦,在小题大做,都不能补全了

发表于 : 2008-07-23 17:56
delectate
JangMunho 写了:……晕,这两个shell的语法能一样么……
:D

发表于 : 2008-07-23 17:59
BigSnake.NET
csh 能用的不代表 bash 能用

发表于 : 2008-07-24 9:14
gcheng.chatswood
bash的alias不支持在替换文本中使用参数,如果需要的话,可以使用bash的函数。

代码: 全选

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

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