如何将以 $ 开头的参数从 cygwin 终端传递给 ant?

How to pass an argument which starts with $ to ant from cygwin terminal?

我正在从 Cygwin 终端运行宁一个 ant 命令,我正在其中签署我的 exe。 我正在 运行 执行类似于

的命令
ant -Dpassword=$abcde

这里 $abcde 是我的密码,但是当我 运行 一个 echo 时,它显示密码为空。

如何将 $ 作为参数的一部分传递,以便 ant 可以处理它?

在 Unix shell 中,$ 符号用于标识 shell 变量。为了防止由于参数被视为变量而导致参数扩展,您需要:

  • 转义(通过在前面加上反斜杠)
  • 或者用引号引起来(引号去除了某些字符的特殊含义,例如$

以下任一方法都有效:

ant -Dpassword=$abcde
ant -Dpassword='$abcde'

编辑: ant 似乎将美元符号视为特殊字符。假设 ant 可以使用反斜杠来转义特殊字符,反斜杠和美元字符都应该通过 shell:

传递给 ant
ant -Dpassword='$abcde'