web-dev-qa-db-ja.com

脱出する方法!パスワードで?

パスワードの感嘆符をエスケープする方法:

$ mysql -umyuser -pone_@&!two
-bash: !two: event not found

明白なバックスラッシュを試しても助けにはなりませんでした:

$ mysql -umyuser -pone_@&\!two
[1] 22242
-bash: !two: command not found
[email protected] [~]# ERROR 1045 (28000): Access denied for user 'myuser'@'localhost' (using password: YES)

私のすべてのグーグル検索は、バックスラッシュが役立つことを示唆していますが、そうではありません。 この質問 で提案されているように引用符を使用する方法はありません。この行は.bashrcエイリアスで使用されます。ここに表示されているユーザー名とパスワードは単なる例であり、本番環境では使用されません。

25
dotancohen

次のように、パスワードを単一引用符で囲みます:-p'one_@&!two'

エイリアスに入れるには、次のようにします。

alias runmysql='mysql -umyuser -p'\''one_@&!two'\'''

40
cas
-bash: !two: command not found

また、&文字をエスケープする必要があります。

$ mysql -umyuser -pone_@\&\!two
4
quanta

あなたが使用しない場合!履歴機能、単にそれらを無効にする方が便利かもしれません(set +H(bashrc内)。

3

パスワードはbash変数に保存できます。

$ pass='one_@&!two'

次に、コマンドの変数を置き換えます。

$ mysql -umyuser -p$pass
1
user7341695