私は次のコマンドを持っています:
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
シェル履歴検索が失敗したことを示します。これはおそらく含まれているパスワードの周りに誤った引用があるため、!
シェル(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"