¿Cómo se puede escapar del signo de exclamación en una contraseña:
$ mysql -umyuser -pone_@&!two
-bash: !two: event not found
Probar la barra oblicua obvia no ayudó:
$ 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)
Todas mis búsquedas en Google sugieren que la barra invertida ayudaría, pero no es así. No hay forma de usar citas como se sugiere en esta pregunta . La línea se usará en un alias .bashrc. ¡No se preocupe, los nombres de usuario y las contraseñas que se muestran aquí son solo ejemplos y no se usan en producción!
''\'
chmod 600
).'\''
, no''\'
/home/user
usuario y mysql, pero no soy el que toma las decisiones a ese respecto.Respuestas:
Use comillas simples alrededor de la contraseña como esta:
-p'one_@&!two'
Para ponerlo en un alias, harías algo como:
alias runmysql='mysql -umyuser -p'\''one_@&!two'\'''
fuente
También necesitas escapar del
&
personaje:fuente
Si nunca usas el! características del historial, puede ser más conveniente simplemente deshabilitarlas (con
set +H
su bashrc).fuente
Puede almacenar la contraseña en una variable bash:
Luego sustituya la variable en el comando:
fuente