gpt4 book ai didi

linux - 如何将本地 shell 脚本变量传递给 expect?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:05 25 4
gpt4 key购买 nike

我的问题与 How to pass variables from a shell script to an expect script? 有关

但它略有不同:

除了传递两个运行时 shell 脚本变量外,我还想传递一个在 shell 脚本中的变量,例如:

#!/bin/sh
d=`date '+%Y%m%d_%H%M'`

expect -c '
expect "sftp>"


#use $d here(how?)
'

最佳答案

您不需要将日期变量传递给 expect。它有一个非常好的内置日期命令:

expect -c '

# ...

set d [timestamp -format "%Y%m%d_%H%M"]
something_with $d

# ...
'

如果您需要进行更复杂的日期操作,请阅读 Tcl clock命令


另一个将 shell 变量传递给 expect 的好方法(无需进行复杂/困惑的引用/转义)是使用环境:导出 shell 变量,然后使用 expect 的全局 env 访问它们数组:

export d=$(date ...)

expect -c 'puts "the date is $env(d)"'

关于linux - 如何将本地 shell 脚本变量传递给 expect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com