如何将以 $ 开头的参数从 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'
我正在从 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'