此期望脚本无法插入或将/ bin / date分配给ydate。 继续抛出错误。我尝试了反引号但是没有用。
#!/usr/bin/expect
ydate=$(date -d 'yesterday' "+%Y.%m.%d")
file="casper_${ydate}.csv"
spawn scp -o StrictHostKeyChecking=no -oport=666 $file casper@casper-server:/spooky/outgoing
set pass "foofoofoo"
expect {
password: {send "$pass\r"; exp_continue}
}
答案 0 :(得分:2)
期望有两种方式来获取日期而无需呼叫外部程序:
Tcl' clock
command
set ydate [clock format [clock seconds] -format "%Y.%m.%d"]
Expect' timestamp
命令
set ydate [timestamp -format "%Y.%m.%d"]
答案 1 :(得分:1)
更新:使用Glenn Jackman's answer(如果您不配置公钥验证)而不是这样做,以避免使用exec
。
你必须使用expect
的语法,而不是shell,因为这不是shell脚本。
set ydate [exec date -d "yesterday" "+%Y.%m.%d"]
set file "casper_${ydate}.csv"