2010-08-04 465 views
0

我有以下shell脚本,并且想要改变文件名db_backup.sql以便改变,所以当前日期被预置到它,例如, yyyy-mm-dd-db_backup.sql在shell脚本中的文件名前加上日期

#!/bin/sh 
mysqldump ... /_sql/db_backup.sql 
gzip -f _sql/db_backup.sql 

简单的问题,希望快速和简单的答案!

+0

您的标题提及perl,您的脚本是外壳... – krico 2010-08-04 12:10:54

+0

对不起家伙大错字! – Rippo 2010-08-04 12:28:55

回答

5

可以使用date命令做你想做什么:

#!/bin/sh 
fspec=/_sql/$(date +%Y-%m-%d)-db_backup.sql 
mysqldump ... ${fspec} 
gzip -f ${fspec} 

如果您使用的是不支持$()外壳,你可能需要使用反引号来代替:

fspec=/_sql/`date +%Y-%m-%d`-db_backup.sql 
+0

虽然他说perl脚本:( – krico 2010-08-04 12:10:24

0
use POSIX qw(strftime); 
my $file = sprintf("%s-db_backup.sql", strftime "%Y-%m-%d", localtime);