如何一次在Ant目标中运行多个Unix命令

时间:2016-08-30 17:21:56

标签: linux bash unix ant

有人可以帮我一个示例目标,了解如何在Ant目标中使用Bash shell运行两个(或更多)Unix命令,但不编写新的shell脚本。

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

到目前为止我使用的代码是这样的,它可以工作,但我想知道是否有一种更简洁的方法 - 在一个标签中,或许用两个命令分隔一个&#34 ;;"或者可能使用< 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>

为了您的答案,请提供一个示例 &LT;目标&gt; 在这里回答!! &LT; / target&gt;

如果可以使用&#34 ;;&#34;来分隔命令。命令可以在单独的行上,还是必须在同一行上。

2 个答案:

答案 0 :(得分:1)

您可以使用:

$ echo "hello"; echo "there"

将运行所有命令,或

$ mkdir "xxx" && cd "xxx" || echo "mkdir fail, will not cd ..."
只有'mkdir'成功,

才会运行'cd'。如果没有,'echo'将运行

答案 1 :(得分:0)

感谢您的回答,他们帮了我。我设法修改了我的目标。将两个unix命令放在由“;”分隔的一行上也工作。如果有人想使用&lt;发布示例exec&gt;那么请这样做 - 这也会有所帮助,我会将其标记为第二个答案。

<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>