如何在ant中获取自己的$ UID?

问题描述:

$ echo $UID # return my user ID 

我想在一个ant构建文件中使用这些信息。一种解决方法是设置此变量明确:

ant some-target -DOWNER_UID=$UID 

这样一来,在我的构建文件“$ {} OWNER_ID”是供使用。

有没有办法以“内部”方式在构建文件中获取此信息,而不需要传递$ UID作为参数?

+0

UID是操作系统特定的属性。用户名会改好吗?如果是这样,它可用作以下java属性:$ {user.name} – 2015-04-03 06:03:29

不是一个跨平台的解决方案,但以下是可能在大多数的Unix环境下工作:

<exec executable="id" failonerror="true" outputproperty="uid"> 
    <arg value="--user"/> 
</exec> 

<echo>uid: ${uid}</echo> 
+0

看起来很有希望,我会尽快尝试! – 2015-04-03 08:36:56

如果你在谈论蚂蚁访问一个环境变量($ UID),你可以这样做:

<property environment="env"/> 
<echo>UID: ${env.UID}</echo> 

请参阅Property task的文档。

+0

在OP的env中,var是$ UID而不是$ OWNER_UID - 可能编辑以反映这种情况? – 2015-04-01 17:14:50

+0

我想sudocode正在复制我的参数“OWNER_ID”,它确实不是一个env参数。 我想拥有s.th.像“env.UID”(从系统中获取$ UID),但至少在我的系统上,这个参数不解决(属性环境...设置)。 – 2015-04-02 07:26:08

+0

感谢马丁,我更新以匹配环境变量名称。 Marcus,是执行Ant之前导出的环境变量吗? – sudocode 2015-04-08 08:15:48