2016-08-30 56 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的成功。如果沒有,'回聲'將運行