对于变量
dbnya="echo $(date +%Y%m%d%H%M%S)"
当运行下面的代码时,我会得到一个错误(SQL语法错误)
mysql -u root -pthepass -e "CREATE DATABASE demo$dbnya CHARACTER SET utf8 COLLATE utf8_bin"
如果我使用dbnya=20120423230524
第一个命令,第二个命令将起作用
答案1
您不需要使用 echo 命令:
$> dbnya="echo $(date +%Y%m%d%H%M%S)"
$> echo $dbnya
echo 20120423170042
只需将其从命令中删除,dbnya 就会收到日期评估的结果:
$> dbnya="$(date +%Y%m%d%H%M%S)"
$> echo $dbnya
20120423170114
答案2
使用反引号代替引号。
dbnya=`echo $(date +%Y%m%d%H%M%S)`
反引号 (`) 表示文本将作为命令执行,从而将变量设置为命令的输出。