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

関連情報