Ant 中的 Exec 命令只执行第一个命令
Exec command in Ant only executes first command
我想列出目录 dir/bin
中每个脚本的权限。但是下面的命令只在脚本所在的目录中运行 "ls"
,而不是 dir/bin
中的每个脚本。由于 script.xml
在 maindir 中,它只是在 maindir 中执行 ls
。
有2个问题:
- 正在执行
ls -l
而不仅仅是行中的第一个命令
- 在正确的目录而不是脚本所在的目录中执行
ls -l
。
目录结构:
- 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>
我建议对一系列文件使用 apply task 到 运行 命令。
例子
├── build.xml
└── dir
└── bin
├── con.py
└── test.sh
产生以下输出
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
build.xml
<project name="demo" default="scan">
<target name="scan">
<apply executable="ls">
<arg value="-l"/>
<fileset dir="dir"/>
</apply>
</target>
</project>
我想列出目录 dir/bin
中每个脚本的权限。但是下面的命令只在脚本所在的目录中运行 "ls"
,而不是 dir/bin
中的每个脚本。由于 script.xml
在 maindir 中,它只是在 maindir 中执行 ls
。
有2个问题:
- 正在执行
ls -l
而不仅仅是行中的第一个命令 - 在正确的目录而不是脚本所在的目录中执行
ls -l
。
目录结构:
- 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>
我建议对一系列文件使用 apply task 到 运行 命令。
例子
├── build.xml
└── dir
└── bin
├── con.py
└── test.sh
产生以下输出
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
build.xml
<project name="demo" default="scan">
<target name="scan">
<apply executable="ls">
<arg value="-l"/>
<fileset dir="dir"/>
</apply>
</target>
</project>