linuxbash脚本:将日期/时间变量设置为自动更新(用于包含在文件名中)



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

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")

我真正需要的是创建一个在运行时更新的变量的方法,或者(更有可能)另一种剥猫皮的方法。

在寻找解决方案时,我遇到了类似的问题。。。像这样。

但是,老实说,我对如何将这两种方法结合起来并创建一个简单、可分发的解决方案感到困惑。

.sh文件是通过pastebin发布的,在这里。

使用函数:

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"

相关内容

  • 没有找到相关文章

最新更新