【发布时间】:2012-04-23 18:16:27
【问题描述】:
我正在尝试为我创建一个运行多个命令的别名。具体来说,该命令应该在多个目录中创建多个 git 分支(如果您知道其他方法可以做到这一点,那就太好了。)这是我正在做的事情:
alias branches="folder1; git checkout -b $1 ; folder2 ; git checkout -b $1; folder3; git checkout -b $1; folder4; git checkout -b $1"
请注意,folder(n) 表示一个 git repo(一个单独的项目),它本身就是一个我以前使用过的简单 cd 别名,所以没有问题。
我得到的错误:
bash: syntax error near unexpected token `;'
我这样做是因为当我处理影响多个项目的 featureA 时,比如重构,我想确保我始终在 featureA 分支中。
谢谢。
编辑:我想使用 sh 别名。编辑标题以反映这一事实。
【问题讨论】:
-
您不能在别名中使用位置参数 (
$1)。正如@Avi 演示的那样,使用一个函数。 -
你确定吗?我刚刚尝试了一个 {alias test="echo $1"} 并且效果很好。
-
@why-el:不,它没有。由于您对字符串进行了双引号,因此
$1在创建别名之前 进行了评估。通过运行alias test进行检查。 -
不,我的意思是如果我将该别名放在 Bashrc 中,它就可以工作。刚刚在终端中使用测试“字符串”进行了尝试。