Как я могу получить дату вчерашнего в ожидании - PullRequest
0 голосов
/ 27 августа 2018

Я пишу сценарий ожидания 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']"

Итак, как мнеисправить это. Я гуглил кое-что и понятия не имею.Я нахожу clock вместо date:

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

И я получаю способ запустить ожидаемое в bash:

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

Наконец, используйте этот способ, чтобы получить вчерашнюю строку в expect script:

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

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Попробуйте это

#!/usr/bin/expect
set yest [ exec /bin/date -d "yesterday" +%Y%m%d]
send_user $yest
exit 1
0 голосов
/ 27 августа 2018

Попробуйте следующим образом:

Для вчерашнего дня:

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

Для позавчерашнего дня:

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