2010-08-04 470 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);