我添加了一个我在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
答案 0 :(得分:2)
使用单引号防止$letters
被解释为变量名。
DBPASS='$randomlettersarehere'
当你使用双引号时,shell会执行变量插值。在美元符号开头,这意味着$DBPASS
最终成为一个空字符串。
答案 1 :(得分:0)
如果它像我一样帮助别人像derpy:如果字符串以$开头,则使用单引号,因此bash不会将sring作为未定义变量进行插值
DBPASS='$randomlettersarehere'