我运行以下脚本:
#!/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行中看到的那样,$ file将被命名为mysql_dump_date
我想在其他地方cp该文件,但不知道如何指定使用mysqldump行中使用的$文件。显然,我可以使用$ file,但如果数据库备份在10:49:59开始,而cp将在10:50:00开始,它将没有相同的时间戳,并且无法找到该文件副本会失败。
有什么想法吗?
答案 0 :(得分:2)
也许我误解了你的怀疑。您似乎认为$file
如果再次使用它会改变其值。
Bash变量不会改变它们的值。 $date
和$file
在脚本中设置一次,然后它们保持相同的值,直到它们在脚本末尾消失(除非它们被重新分配)。因此,您可以再次使用$file
,它将具有相同的值。