Chinaunix

标题: alias rm='cp $@ ~/backup; rm $@' 报错?? [打印本页]

作者: dualgaun    时间: 2012-09-02 11:53
标题: alias rm='cp $@ ~/backup; rm $@' 报错??
在书上看到这个一个 alias定义:

alias rm='cp $@ ~/backup; rm $@'        ###删除文件之前,先cp一份到~/backup目录



觉得挺有用的;可为啥我这不行呢?


[root@localhost ~]# touch test.txt
[root@localhost ~]#
[root@localhost ~]# rm test.txt
cp: missing destination file operand after `/root/backup'        ##为啥会报这个错呢
Try `cp --help' for more information


另外,大家有没有比较好的SHELL脚本学习的书籍推荐下啊? 买了一本,《Linux Shell脚本攻略》内容一般,组织比较乱,上面好多例子我都报错。这本书原作者是印度人;不知是原作还是翻译的原因,感觉不是很好。

谢谢大家了。


作者: cjaizss    时间: 2012-09-02 12:16
这是什么shell中的支持呢
作者: zooyo    时间: 2012-09-02 15:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: dualgaun    时间: 2012-09-02 15:47
CentOS   bash 3.5 回复 2# cjaizss


   
作者: cjaizss    时间: 2012-09-02 15:49
bash的alias似乎不支持$@
作者: dualgaun    时间: 2012-09-02 16:17
确实啊,又试了csh, sh也不行回复 5# cjaizss


   
作者: cjaizss    时间: 2012-09-02 16:27
dualgaun 发表于 2012-09-02 16:17
确实啊,又试了csh, sh也不行回复 5# cjaizss

你去找下原书看看是哪个shell的支持
作者: dualgaun    时间: 2012-09-02 18:22
麻烦就在这,书上根本没说;其他,还有好多功能常用bash根本不支持;不知道您有没有什么好的书推荐下啊??谢了回复 7# cjaizss


   
作者: cjaizss    时间: 2012-09-02 18:42
dualgaun 发表于 2012-09-02 18:22
麻烦就在这,书上根本没说;其他,还有好多功能常用bash根本不支持;不知道您有没有什么好的书推荐下啊?? ...

连bash都不支持的话,那么肯定是非标准的
作者: scsandan    时间: 2013-08-09 17:11
我也遇到了~
作者: wangjingyu00711    时间: 2014-09-13 17:27
求解,我在bash上试了不行。
作者: 李满满    时间: 2014-09-13 18:05
学生党:飘过~
正好你看的那本书我也看了....书上的这个例子需要在ubuntu的低版本的系统才支持,现在基本上都不支持了,想实现也很简单自己写一个脚本先备份再删除
作者: speedinghzl    时间: 2014-10-03 16:57
我觉得alias也只是做了一次替换而已
alias rm='cp $@ ~/backup; rm $@'
rm text.txt
被转换成了
cp  $@ ~/backup; rm $@ text.txt即
cp  ~/backup; rm  text.txt
可以看到text.txt被删除了。
作者: Shell_HAT    时间: 2014-10-08 10:48
这本书英文版是2011年1月份出版的,作者写书的时间就更久远了,也许是他当时的环境跟你的环境相差太多了吧。
可以考虑换本书。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2