免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1655 | 回复: 7
打印 上一主题 下一主题

[文件目录] bash下alias快捷键请教 [复制链接]

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-05 23:59 |只看该作者 |倒序浏览
本帖最后由 weichanghe2000 于 2015-12-06 14:12 编辑

大家好,刚学习bash一会儿,碰到个问题。
能够帮忙解答下吗?

我做了一个快捷键 alias open="cd /tmp/res/$1 && ls",
当我用open math时,目的是 进去文件夹 /tmp/res/math,然后执行 ls。
但是最后发现, pwd 还是 /tmp/res,不是 /tmp/res/math。

不知道哪里出错了。
麻烦指点下,多谢。

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
2 [报告]
发表于 2015-12-06 16:05 |只看该作者
用函数吧,
$ cdls()
{
    cd /tmp/res/$1 && ls
}
$ alias open='cdls'
$ open math

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
3 [报告]
发表于 2015-12-06 21:06 |只看该作者
回复 2# songyc_2015

你好,这个是可以,谢谢。
主要是我不知道我的问题,错在哪里,
一直没有想明白。


   

论坛徽章:
0
4 [报告]
发表于 2015-12-07 09:34 |只看该作者
本帖最后由 lgfang 于 2015-12-07 09:37 编辑

一般来说,双引号里的 $xxx 会被立即展开。所以  alias open="cd /tmp/res/$1 && ls" ==》 alias open="cd /tmp/res/ && ls"。
解决办法:双引号改成单引号就可以。

但是 刚才在bash4里试了下,单引号双引号都可以 .

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
5 [报告]
发表于 2015-12-07 21:33 |只看该作者
回复 4# lgfang

我的改成了单引号也不行。没有进入/tmp/res/math


不知道为什么?

   

论坛徽章:
6
羊年新春福章
日期:2015-03-03 17:16:28双子座
日期:2015-03-03 17:16:56巳蛇
日期:2015-03-03 17:17:2415-16赛季CBA联赛之福建
日期:2016-03-11 09:05:00黑曼巴
日期:2016-07-07 16:58:1215-16赛季CBA联赛之吉林
日期:2016-11-14 09:23:07
6 [报告]
发表于 2015-12-08 10:00 |只看该作者
在centos6上面试过了,单双引号都是可以的,估计是版本问题
要是想永久生效,建议写入/etc/profile中,用二楼函数的方法写入文件,然后source /etc/profile生效

论坛徽章:
0
7 [报告]
发表于 2015-12-08 18:30 |只看该作者
本帖最后由 lgfang 于 2015-12-17 10:30 编辑

回复 5# weichanghe2000

sorry, 当时有点晕,应该单双引号都不行。因为 alias 原本就不支持参数(我之前说"bash4可以"是我测试得不对)

Bash manual:

   There is no mechanism for using arguments in the replacement text,
as in `csh'.  If arguments are needed, a shell function should be used
(see Shell Functions).


   

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
8 [报告]
发表于 2015-12-10 21:10 |只看该作者
回复 7# lgfang


    非常感谢你提供的官方的Manual。
多谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP