bash shell脚本提示输入数据库密码

时间:2014-06-18 20:28:51

标签: mysql bash shell mysqldump

我添加了一个我在cronjobs中一直用于新帐户的shell脚本。当我运行它(在sudo -u下)时,我被提示输入数据库密码。当提供传递命令完成时没有问题。

主机分配的随机密码以$开头,我想知道这是否是问题所以我修改为传入变量。目前的脚本如下。

运行时,在成功完成之前仍会提示输入db密码。有什么问题?

#!/bin/sh

DBPASS="$randomlettersarehere"

/usr/bin/mysqldump --opt -h mysql.mysite.com -u myuser -p$DBPASS mydbname > "/home/mysite/backups/"`/bin/date +\%Y\%m\%d`.mysiteBackup.sql

2 个答案:

答案 0 :(得分:2)

使用单引号防止$letters被解释为变量名。

DBPASS='$randomlettersarehere'

当你使用双引号时,shell会执行变量插值。在美元符号开头,这意味着$DBPASS最终成为一个空字符串。

答案 1 :(得分:0)

如果它像我一样帮助别人像derpy:如果字符串以$开头,则使用单引号,因此bash不会将sring作为未定义变量进行插值

DBPASS='$randomlettersarehere'