2016-08-30 59 views
0

可能有人请帮我用一个例子如何运行两个(或多个)目标使用的Bash shell从Ant目标之内,但没有写一个新的shell脚本的Unix命令。如何运行多个Unix命令在一个时间

我找到了答案这里How to run multiple Unix Commands in one time?这是伟大的,但建议创建我不想做一个shell脚本。

我使用至今的代码是这样的,它的工作原理,但我想知道是否有这样做的一个更合适的方法 - 在一个标签也许相隔两个命令的“;”或者使用< exec>标签而不是所示的< shellscript>。

<target name="dos2unixTidyUp" depends="deleteTemp" if="isUnix" > 
    <shellscript shell="bash" dir="${my-app-bin.dir}" osfamily="unix" > 
     dos2unix *.sh 
    </shellscript> 
    <echo>dos2Unix formatting completed</echo> 
    <shellscript shell="bash" dir="${my-app-bin.dir}" osfamily="unix" > 
     chmod +x *.sh 
    </shellscript> 
    <echo>chmod +x *.sh commanded completed</echo> 
</target> 

您的回答,请提供一个例子 <目标> 在这里的答案! </target>

如果可以使用“;”来分隔命令,命令可以在单独的行上,或者它们必须在同一行上。

+0

只需使用任务并用';'分隔两个命令即可。是要走的路 – Rebse

回答

0

谢谢你的答案,他们确实帮了我。我已经设法修改我的目标。在一行中有两个unix命令分隔“;”也工作。如果有人想使用< exec>发布示例,那么请这么做 - 这也会有所帮助,我会将其标记为第二个答案。

<target name="unixShellTidyup" depends="deleteTemp" if="isUnix" > 
    <shellscript shell="bash" dir="${my-app-bin.dir}" osfamily="unix" > 
      dos2unix *.sh ; 
      chmod +x *.sh 
     </shellscript> 
     <echo>unixShellTidyup completed</echo> 
</target> 
1

您可以使用:

$ echo "hello"; echo "there" 

将运行所有命令,或

$ mkdir "xxx" && cd "xxx" || echo "mkdir fail, will not cd ..." 

将运行 'CD' 只有当'的mkdir的成功。如果没有,'回声'将运行