2013-04-24 71 views
1

我想根据git describe命令的输出创建一个目录。将git描述为shell变量

这并没有工作

set NAME = git describe 
mkdir %NAME% 

我应该怎么办?

回答

3
在Windows

,捕获命令的输出,使用FOR /F命令。

阅读HELP FOR,然后尝试这个

FOR /F %a in ('git describe') do md %a 
+1

这看起来像解决了问题。我很好奇,如果使用了_Eval_,它会起作用吗? 像'set NAME = Eval(git describe)'。 不幸的是,我不在我的Windows机器上,所以我现在无法测试它。无论如何,只是好奇。谢谢! - 参考:http://ss64.com/vb/eval.html – 2013-04-24 18:03:05

+1

Eval是一个VB函数,它不是Windows命令,所以它不能在Windows命令行中执行。 – 2013-04-25 07:10:08

1

在Windows上,您可以尝试PA所述的方法。

现在,如果你在Linux上,以下可能的工作:

试试这个:

# Create the command 
alias your-command="mkdir $(git describe)" 

# Run the command 
your-command 

与应创建的git describe输出命名的文件夹。

这是在Ubuntu安装上测试的,它只能在存储库文件夹本身内部工作。

请注意,所描述的命令会创建一个别名。如果你想设置的输出git describe作为一个shell变量,你应该做到以下几点:

# Create a local variable 
foo=$(git describe) 

# Create a new folder using `mkdir` 
mkdir ${foo} 

注意,现在你有与git describe值的局部变量。你可以试试:

echo ${foo} 
+2

OP称Windows命令行 – 2013-04-24 17:06:43

+0

你说得对,没有注意到标签。编辑澄清! – 2013-04-24 18:00:57