Ant中的Exec命令只执行第一个命令

时间:2015-06-23 21:28:35

标签: linux bash ant exec ant-contrib

我想列出目录dir/bin中每个脚本的权限。但是下面的命令只在脚本所在的目录中运行"ls",而不是dir/bin中的每个脚本。由于maindir中有script.xml,因此maindir内部只有一个ls

有两个问题:

  1. 表演ls -l&不仅仅是行中的第一个命令
  2. 在右侧目录中执行ls -l,而不是在脚本所在的目录中执行。{/ li>

    目录结构:

       - maindir
         - dir
            -bin
              -test.sh
              -con.py
         - script.xml
    

    下面的代码名为" script.xml":

    <foreach param="dirSc" in="dir/bin">
        <exec executable="/bin/sh"
            resultproperty="returncode"     
            output="dir/output.txt">
            <arg value="-c" />
            <arg line="ls -l ${dirSc}" />
       </exec>
    <foreach>
    

1 个答案:

答案 0 :(得分:3)

我建议使用apply task对一系列文件运行命令。

实施例

 src="newDomain/screenhunterblablabla"

生成以下输出

├── build.xml
└── dir
    └── bin
        ├── con.py
        └── test.sh

的build.xml

scan:
    [apply] -rw-r--r-- 1 mark mark 1 Jun 23 23:30 ../dir/bin/con.py
    [apply] -rw-r--r-- 1 mark mark 1 Jun 23 23:29 ../dir/bin/test.sh