2015-01-27 60 views
0

我运行下面的脚本:如何从bash脚本复制变量文件

#!/bin/bash 
{ 
date=$(date '+%Y-%m-%d_%H-%M-%S') 
file="mysql_dump_$date" 

echo '###Start DB Backup '$date'###' 
     mysqldump -h localhost -u 'USERNAME' -pPASSWD 'DBNAME' > /backup/$file 
echo '###DB Backuo Finished '$date'###' 
} >> /backup/backup.log 

正如你可以在mysqldump的线看到,$文件将被命名为mysql_dump_date

我想CP的文件在其他地方,但不知道我可以指定如何使用mysqldump行中使用的$文件。很明显,我可以使用$文件,但如果数据库备份在10:49:59开始,并且cp将在10:50:00开始,它将不会有相同的时间戳,并且无法找到文件并且副本将失败。

任何想法?

回答

2

也许我误解了你的疑惑。您似乎认为$file将在第二次使用时更改其值。

Bash变量不会更改它们的值。 $date$file在您的脚本中设置一次,然后它们保持相同的值,直到它们消失在脚本的末尾(除非它们被重新分配)。所以你可以再次使用$file,它将具有相同的值。