2014-06-06 59 views
1

多个高管的论点我想写一个ant脚本,将如何编写蚂蚁

  1. 启动一个新的终端
  2. 更改用户
  3. 和运行Appium会议

这是我迄今为止,但它没有做任何事情

<exec executable="/bin/bash" os="${os.unix}" spawn="true"> 
     <arg value="-c" /> 
     <arg value="gnome-terminal su appium" /> 
     <arg value="appium &amp;" /> 
    </exec> 

回答

1

试试这个:

<exec executable="/bin/bash" spawn="true" > 
    <arg value="-c" /> 
    <arg value="x-terminal-emulator -e 'sudo -u appium appium'" /> 
</exec> 

os="${os.unix}"似乎不正确,我已经完全删除它。

-c和bash命令需要单独arg元素。

su将启动新的shell。改为使用sudo

命令传递给gnome-terminal需要引用。

x-terminal-emulator应该比gnome-terminal更便携。


实际上,使用bash似乎并不需要。尝试:

<exec executable="x-terminal-emulator" spawn="true" > 
    <arg value="-e" /> 
    <arg value="sudo -u appium appium" /> 
</exec> 
+0

您好我试着这样做,因为我没有X-终端模拟器,但是当我运行它,它做一些事情,并关闭终端马上。 。另外,我可以在哪里放置命令appium并启动appium? – Gnawk

+0

如果您使用'appium&'而不是'appium',您的终端将在后台启动'appium'并立即关闭。尝试在当前终端执行'sudo -u appium appium',看看它为什么不能正常工作。 –

+0

我得到sudo:appium:command not found – Gnawk

3

什么是属性值${os.unix}?如果你打算使用os参数,你通常给它一个字符串常量而不是属性值。

<exec executable="/bin/bash" os="unix" spawn="true"> 
    <arg value="-c" /> 
    <arg value="gnome-terminal su appium" /> 
    <arg value="appium &amp;" /> 
</exec> 

通过这种方式,你可以有一个<exec>任务所有的Unix风格的操作系统,而另一<exec>任务所有其他的人(Windows)中。

还了解<arg value="..."/><arg line="..."/>之间的差异。我不知道gnome-terminal的确切命令结构,但是当您传递一些东西作为value时,您将它作为单个参数传递 - 即使其中包含空格也是如此。例如:

<exec executable="foo"> 
    <arg value="-f foo -b bar"/> 
</exec> 

将执行,就好像我键入此命令行:

$ foo "-f foo -b bar" # This is one command with one parameter. Note the quotation marks! 

如果我这样做:

<exec executable="foo"> 
    <arg line="-f foo -b bar"/> 
</exec> 

,如果我输入这在将执行命令行:

$ foo -f foo -b bar#这是一个带四个参数的命令

这相当于上述Ant任务:

<exec executable="foo"> 
    <arg value="-f"/> 
    <arg value="foo"/> 
    <arg value="-b"/> 
    <arg value="bar"/> 
</exec> 

目前,您试图执行:

$ /斌/庆典-c “的gnome-terminal苏appium” “appium &”

如果这是你想要的,很好。顺便说一句,你可以跳过在Unix整个/斌/ bash的东西:

<exec executable="gnome-terminal" os="unix" spawn="true"> 
    <arg value="su appium"/> 
    <arg value="appium &amp;"/> 
</exec> 
+0

不错的一个。有用! –