我想从 ant 脚本导出变量,但我做错了,因为我得到了错误:
sh: 0: Can't open export DISPLAY=:10
有我的脚本片段
<target name="xvfb_start">
<echo>Starting xvfb</echo>
<exec executable="sh">
<arg value="export DISPLAY=:10"/>
</exec>
</target>
最佳答案
这不起作用,因为 sh
期望第一个参数是要执行的命令。 export DISPLAY=:10
不是有效的命令(并且由于您将其作为单个参数传递给 sh
,它需要所有内容作为脚本名称的一部分才能启动,即使空格和冒号)。
要使 sh
评估参数,请尝试 sh -c
。这将为您提供一个 shell,其中定义了变量 DISPLAY
。由于命令行上没有其他命令,shell 将终止并且您的变量将随之丢失。
解决方案:
- 将所有命令串在一起
- 改为执行脚本
对于#1:
<exec executable="sh">
<arg value="-c"/>
<arg value="export DISPLAY=:10 ; xvfb"/>
</exec>
对于 #2,将所有命令放入一个普通的 shell 脚本中并让 sh
执行它。
关于linux - 如何在 Linux 上使用 ant 脚本导出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24992713/