keytool无法解析公正的目录。即这是有效的:
keytool -keystore "/users/me/Desktop" ...
这不是:
keytool -keystore "~/Desktop" ...
我可以这样称呼:
keytool -keystore "$(<cmd> ~/Desktop)" ...
我想我应该更具体一点:
这就是我正在做的事情:
myVar=~/Desktop
<allow user to overwrite default value of myVar>
keytool -keystore "$myVar" ...
我不认为在keytool命令中使用$ myVar是不安全的,以防有人在其中放入一些恶意代码。
答案 0 :(得分:4)
那是因为你引用了这条路。 Keytool或unix中的任何其他命令行程序与wildrcards无关,因为shell用于实际扩展路径名。如果你没有引用这条路,它就会很好用。
答案 1 :(得分:2)
我不认为这是一个编程问题,但你是否在没有引号的情况下尝试了?即。
keytool -keystore ~/Desktop ...
答案 2 :(得分:1)
eval echo“〜/ foo”
e.g。 keytool -keystore $(eval echo~ / Desktop)
答案 3 :(得分:0)
怎么样
keytool -keystore "$(echo ~/Desktop)"
或
keytool -keystore "$HOME/Desktop"
但是,另一方面,〜/ Desktop也应该可以正常工作。仅使用bash尝试,此处没有任何其他Bourne shell。