在bash别名中,如何连接 正规表达式?

分享于 

2分钟阅读

电脑

  繁體 雙語

问题:

在我的生命中,如何创建一个将 switch 转换为给定项目目录的别名。

我将所有项目保存在一个名为 换句话说,~/Project/blog~/Project/whatever的文件夹中

我想在 p whatever 行上有一个别名,它等于 cd ~/Project/$1,它的中 $1 是给 p的任何内容。

我尝试了 alias p="cd ~/Projects/$1"的各种组合,但是 正规表达式 转义的所有常见疑问都是不可以能的。

有什么想法吗?


回答 1:

不能在别名中使用位置参数。 使用函数代替。


p() {


 cd ~/Projects/"$1"


}




回答 2:

也许这就是你要找的东西: 如何在bash中内联展开别名

所以一个简单的解决方案就是使用shell-expand-line命令

定义不带 $1的别名


 $bash>alias p="cd ~/Projects/"


 $bash>p 



只需按Meta-Ctrl-e即可展开获取:


$bash>cd/home/USERNAME/Projects/



在扩展过程中,这个解决方案会产生一个笨拙的空格,在扩展结束之前,你必须先用退格键删除它,然后再写其他的。
Ignacio Vazquez建议a 解决方案wolud使用自动完成属性( 查看/etc/bash_completion) ) 功能



相关文章