我正在为某些任务构建一个
Bash脚本.其中一项任务是在同一个bash脚本中创建一个
MySQL DB.我现在正在做的是创建两个变量:一个用于存储用户名,另一个用于存储密码.这是我脚本的相关部分:
MysqL_USER=root MysqL_PASS=mypass_goes_here touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql MysqL --user=$MysqL_USER --password="$MysqL_PASS" < /tmp/script.sql rm -rf /tmp/script.sql
解决方法
对于MysqL和Postgresql,您都可以在本地配置文件中指定您的用户和密码. .my.cnf用于MysqL,.pgpass用于Postgresql.这些文件应该在您的主目录中(即〜/ .my.cnf).
.my.cnf:
[MysqL] user=user password=password
.pgpass:
host:port:database:user:password
您可以在此处使用通配符条目,将任何字段替换为*******.
PS:请勿在命令行上指明密码!如果您的系统未配置为不显示属于其他用户的进程,则可以使用ps完全显示此信息.
@thinice:如果你想创建那些真正安全的文件,你应该这样做:
umask 077 touch .my.new.config umask 022 # or whatever was your default