我如何获得昨天的日期

How do I get a date of yesterday in expect

我写了一个 expect 脚本 1.sh:

#!/usr/bin/expect
set yest [exec `date -d "yesterday" '+%Y%m%d'`]
send_user $yest
exit 1

和运行在linux中,使用expect -d ./1.sh 但我收到此错误:

expect version 5.44.1.15
executing commands from command file ./1.sh
invalid command name "/bin/date"
    while executing
"date -d "yesterday" '+%Y%m%d'"
    invoked from within
"set yest [date -d "yesterday" '+%Y%m%d']"

那么,我该如何解决this.I 用谷歌搜索但不知道的问题。 我发现 clock 而不是 date

https://www.tcl.tk/man/tcl8.5/TclCmd/clock.htm

然后我找到了 运行 expect in bash 的方法:

#!/bin/bash
expect <<!
## expect code ##
!

终于用这种方法得到了expect script中昨天的字符串:

set yest [clock scan "yesterday"]
set yest1 [clock format $yest -format {%Y%m%d}]

试试这个方法:

昨天:

date -d '-1 day' '+%Y%d%m'

前天:

date -d '-2 day' '+%Y%d%m'

试试这个

#!/usr/bin/expect
set yest [ exec /bin/date -d "yesterday" +%Y%m%d]
send_user $yest
exit 1