linux - 如何在 Linux 上使用 ant 脚本导出变量

标签 linux ant

我想从 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. 将所有命令串在一起
  2. 改为执行脚本

对于#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/

相关文章:

java - 路径变量未正确设置

java - 运行maven编译两次

python - 在 nvidia jetson tx2 上安装 tensorflow 的问题

ant - 可选的 Ant arg

java - Ant:应用任务:以并行 ="true"模式为每个输入文件添加额外参数

ant - 使用 ant-contrib 使用 cpptasks 编译 C 程序

c++ - wordexp 和带空格的字符串

linux - 最大化 MongoDB 连接

linux - ACE 和异步 UDP 通信

linux - 用于将文件从服务器传输到本地计算机的 Ksh 脚本