linux bash脚本:设置日期/时间变量自动更新(包含在文件名中)

时间:2012-11-28 10:57:07

标签: bash variables date time auto-update

基本上,我有一个标准格式的文件命名约定。它分解为:

target_dateUTC_timeUTC_tool

因此,例如,如果我在'foo'的目标上运行tcpdump,那么该文件将是foo_dateUTC_timeUTC_tcpdump。很简单,但每个人都不断(并且始终如一)地输入......所以我试图创建一个bash脚本来设置系统变量,如下所示:

FILENAME=$TARGET\_$UTCTIME\_$TOOL

然后,我可以在运行时调用变量,如下所示:

tcpdump -w $FILENAME.lpc

所有这一切都像冠军一样。我有一个菜单驱动的.sh,它为用户提供了查看当前变量以及设置它们的选项......文件生成是轻而易举的。不幸的是,通过设置日期/时间变量,它被锁定到创建时的值(自然地)。我像这样设置变量:

UTCTIME=$(/bin/date --utc +"%Y%m%d_%H%M%Z")

我真正需要的是一种创建在运行时更新的变量的方法,或者(更有可能)另一种方法来为这只猫设置皮肤。

在寻找解决方案时,我遇到了类似的问题......比如this

但是,说实话,我很难理解如何将这两种方法结合起来并创建一个简单,可分发的解决方案。

.sh文件通过pastebin here发布。

1 个答案:

答案 0 :(得分:1)

使用功能:

generate_filename() { echo "${1}_$(/bin/date --utc +"%Y%m%d_%H%M%Z")_$2"; }

并像这样使用它:

tcpdump -w "$(generate_filename foo tcpdump).lpc"

很难让函数自动确定命令名称。您可以使用bash历史记录来获取它并保存几个字符:

tcpdump -w "$(generate_filename foo !#:0).lpc"