-bash: !'@10.109.10.142/?ip=10.109.8.39: 未找到事件

-bash: !'@10.109.10.142/?ip=10.109.8.39: 未找到事件

我有这个命令:

ovftool --acceptAllEulas -ds="Local_Storage_1_39" -n="VR-OVF" --net:"Management Network"="VM Network 2" --prop:"password"="R3d@ctedPassw0rd!"$a" --prop:"ntpserver"="10.109.10.140" --prop:"vami.ip0.vSphere_Replication_Appliance"="10.109.10.198" --vService:installation=com.vmware.vim.vsm:extension_vservice /mnt/iso/bin/vSphere_Replication_OVF10.ovf vi://"[email protected]":'R3d@ctedPassw0rd!'@10.109.10.142/?ip=10.109.8.39

输出是:

-bash: !'@10.109.10.142/?ip=10.109.8.39: event not found

我尝试在单引号内提供密码。一样。我尝试过: \"'R3d@ctedPassw0rd!'\"仍然是同样的问题。

答案1

event not found表示 shell 历史搜索失败。这可能是由于包含 的密码周围的引用不正确!,因此您的 shell ( bash) 试图将其解析为历史扩展,但未能成功,并举起它的隐喻之手并返回错误消息:

$ echo Problems!Abound
bash: !Abound: event not found

弱引号不能防止这种情况:

$ echo "Problems!Abound"
-bash: !Abound: event not found

将您的密码放入变量中并间接引用它,或者确保您的密码始终用强引号引起来(如下所示)或正确转义:

$ echo 'Problems!Abound'
Problems!Abound

答案2

您的命令的这一部分前面的引号不匹配。

--prop:"password"="R3d@ctedPassw0rd"$a"

如果将命令粘贴到可以进行语法突出显示的编辑器中,则很容易发现问题。我不确定变量中有什么$a,但我猜你需要删除它前面的引号以使选项看起来像这样:

--prop:"password"="R3d@ctedPassw0rd$a"

相关内容