预期中的可变插值

时间:2018-05-31 17:55:41

标签: bash expect

此期望脚本无法插入或将/ 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}
                  }

2 个答案:

答案 0 :(得分:2)

期望有两种方式来获取日期而无需呼叫外部程序:

  1. Tcl' clock command

    set ydate [clock format [clock seconds] -format "%Y.%m.%d"]
    
  2. 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"