我如何在期望脚本中约会

doo*_*oon 7 expect

我需要访问expect脚本中的当前日期(或时间),以便我可以将它添加到expect脚本中创建的目录中,例如类似于这些需要完成的事情

mkdir file<date>
Run Code Online (Sandbox Code Playgroud)

我可以通过shell约会

date | tr " " "-" | cut -f 2,4 -d "-"
Run Code Online (Sandbox Code Playgroud)

但是,我无法访问它,期望例如不能做的事情

set var = `date | tr " " "-" | cut -f 2,4 -d "-"`
Run Code Online (Sandbox Code Playgroud)

我将它放在一个shell脚本中,然后回显它,并在此处$expect_out(buffer)详细说明输出.但是,缓冲区也会得到提示,如上所述需要删除.另外,请注意,并不能真正满足人们的需求; 它通常需要过滤至少以消除提示.$expect_out(buffer)

gle*_*man 12

在期望中,您将使用builtin clock命令:

set now [clock seconds]
set date [clock format $now -format {%b-%d}]
set file file.$date
Run Code Online (Sandbox Code Playgroud)

或者一气呵成:

set file file.[clock format [clock seconds] -format {%b-%d}]
Run Code Online (Sandbox Code Playgroud)

我强烈建议您使用合理排序的日期格式

set file file.[clock format [clock seconds] -format {%Y-%m-%d}]
Run Code Online (Sandbox Code Playgroud)

  • @doon 在 Expect 中,您可以使用 `timestamp` 内置命令,例如 `set file file.[timestamp -format {%Y-%m-%d}]`。 (2认同)