继续问alias的问题

为当前最终发行版之前的所有版本提供支持
回复
头像
jcauchy
帖子: 22
注册时间: 2008-07-18 16:31
送出感谢: 0
接收感谢: 0

继续问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
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

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

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

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

#3

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

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

#4

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

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

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


对哦,在小题大做,都不能补全了
delectate
帖子: 18311
注册时间: 2008-01-09 22:41
送出感谢: 0
接收感谢: 6 次

#5

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

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

#6

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

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

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

#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没什么意思。
回复

回到 “老旧版本支持”