Назад | Перейти на главную страницу

Как спастись! в пароле?

Как избежать восклицательного знака в пароле:

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

Использование очевидной обратной косой черты не помогло:

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

Все мои поиски в Google показывают, что обратная косая черта поможет, но это не так. Невозможно использовать кавычки, как предлагается в этот вопрос. Строка будет использоваться в псевдониме .bashrc. Не волнуйтесь, приведенные здесь имена пользователей и пароли являются только примерами и не используются в производстве!

Используйте одинарные кавычки вокруг пароля, например: -p'one_@&!two'

Чтобы вставить его в псевдоним, вы должны сделать что-то вроде:

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

-bash: !two: command not found

Вам также нужно избежать & персонаж:

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

Если вы никогда не используете! функции истории, может быть удобнее просто отключить их (с set +H в вашем bashrc).

Вы можете сохранить пароль в переменной bash:

$ pass='one_@&!two'

Затем подставьте переменную в команду:

$ mysql -umyuser -p$pass