首页 > 解决方案 > 期望中的变量插值

问题描述

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

标签: bashexpect

解决方案


Expect 有 2 种方法来获取日期,而无需调用外部程序:

  1. Tcl 的clock命令

    set ydate [clock format [clock seconds] -format "%Y.%m.%d"]
    
  2. 期望timestamp命令

    set ydate [timestamp -format "%Y.%m.%d"]
    

推荐阅读