将当前日期和时间添加到bash脚本echo命令中

3
我有一个脚本需要运行很长时间。我想将当前日期和时间添加到echo命令中,以便在每个步骤完成时将其打印到屏幕上。
因此,我的命令会创建和插入约20个数据库。一些数据库需要几个小时才能插入,所以我想将每个步骤完成的时间打印到屏幕上,以便您可以知道恢复过程中的进度。以下是我的目前进展:
#!/bin/sh
            for DB_File in *.sql ; do
    mysqladmin create ${DB_File%%-*}
            echo ${DB_File%%-*} has been created. date +%x_%X
    mysql ${DB_File%%-*} < $DB_File

            echo $DB_File inserted into database. date +%x_%X
   done

1
要么将日期命令放在单独的一行,要么使用$(date +%x_%X)来替换echo行上的命令输出。 - Etan Reisner
谢谢,如果我使用 echo $(date),它可以正常工作。但是 $(date +%x_%X) 会出现错误 "date: invalid date ‘=%x_%X’",不过我可以使用只有日期的输出结果进行操作。谢谢。 - Rick Bonney
只需使用 date 命令。不需要使用 echo $(date),这样做是毫无意义的。而且 =%x_%X+%x_%X 是不同的。=) - Etan Reisner
1个回答

4
这应该可以工作:
for DB_File in *.sql ; do
    mysqladmin create ${DB_File%%-*}
    echo ${DB_File%%-*} has been created. `date "+%F %T"`
    mysql ${DB_File%%-*} < $DB_File
    echo $DB_File inserted into database. `date "+%F %T"`
done

使用反引号(`)可以获取date命令的结果。如果需要其他日期格式,只需查看"date --help"提供的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接