bash函数忽略git clone命令的点

bash函数忽略git clone命令的点,git,bash,scripting,bash-function,Git,Bash,Scripting,Bash Function,我正在努力使用一个不会克隆到当前目录的bash函数,它正在创建一个项目文件夹: cloneproject(){git clonegit@bitbucket.org:codyc54321/$1.git.} 我在分号之前的末尾有一个点,但在名为“bookwormbuddy”的目录中运行此命令会使它添加一个新的项目文件夹,就像运行克隆时没有一个点一样: me@pc:~/projects/bookwormbuddy$ cloneproject bookwormbuddy Cloning into 'bo

我正在努力使用一个不会克隆到当前目录的bash函数,它正在创建一个项目文件夹:

cloneproject(){git clonegit@bitbucket.org:codyc54321/$1.git.}

我在分号之前的末尾有一个点,但在名为“bookwormbuddy”的目录中运行此命令会使它添加一个新的项目文件夹,就像运行克隆时没有一个点一样:

me@pc:~/projects/bookwormbuddy$ cloneproject bookwormbuddy
Cloning into 'bookwormbuddy'...
然而,当我从终端运行相同的命令时,它的工作方式与我习惯的一样:

me@pc:~/projects/bookwormbuddy$ git clone git@bitbucket.org:codyc54321/new_bookmarks.git .
Cloning into '.'...
我需要这个,因为我在存储中为不同的项目命名是有原因的。我怎样才能使ubuntu尊重点?
谢谢

您可以避开点,告诉Bash不要将其视为正则表达式的一部分:

cloneproject() { git clone git@bitbucket.org:codyc54321/$1.git \. ;}

如前所述,Bash将把一个点视为“任何字符”的意思。

我没有这样做,这是有效的:
cloneproject(){git clonegit@bitbucket.org:codyc54321/$1.git\;}
。你知道bash认为圆点是什么吗?它认为这是一个正则表达式吗?如果你想要信用,你可以回答,谢谢。查看以确认。检查它是否仍然从终端正常运行。它与一个终端一起工作backslash@TimBiegeleisen这毫无意义,除非您想克隆到名为
\。
的目录中@codyc4321请注意,为您工作的命令是如何不希望Tim建议的(他建议
\.
)。你的
\.
相同,因为dot不需要引用。你在哪里定义函数?@TimBiegeleisen没有。正如我说的,
set-x
,你会发现它没有被视为任何特殊的东西。我打赌问题出在git上,尽管我无法在任何设置下复制。Ubuntu与否,同名与否,等等。它只是起作用,没有理由不起作用。他们有5分钟的冷却时间可以接受……这是买枪吗?;)哈哈,我不确定。为了便于将来参考,您应该始终保持后脑勺中的转义字符。这个问题在bash、regex、Java、Perl甚至SQL中都会出现,这是错误的(错误的意思是没有任何改进)。我不知道为什么原始版本不起作用(它应该起作用,我甚至测试过),但这与原始版本完全相同。这不是正则表达式设置,
不是通配符()。请不要随意引用不同设置的内容。你们介意不要把我的答案弄得一团糟吗?谢谢。如果评论一个潜在的错误答案(参考文献毫无意义,特别声明
Bash会将一个点视为“任何字符”的意思。”
只是很搞笑,即使答案在某种意义上有一些价值)以找出真正的原因是造成混乱,那么请确定。你没有解决我的任何合法问题(你的态度似乎是收获点和离开,因为你画了一个毫无意义的参考,然后逼迫我接受和投票)。让我们把讨论转移到帖子下面。