gpt4 book ai didi

exec 在期望脚本中不起作用

转载 作者:行者123 更新时间:2023-12-02 08:54:48 25 4
gpt4 key购买 nike

我正在编写我的第一个期望脚本,所以我可能遗漏了一些明显的东西,但我发现以下内容非常令人费解:

$ expect
expect1.1> exec echo a
a
expect1.2>
$ cat > test.exp
exec echo a
$ expect test.exp
$

如果我运行 expect 并让它手动执行某些东西,它就可以工作。如果我将相同的命令放在脚本中,它就不起作用。这是怎么回事?

最佳答案

请注意,expect 本质上是 Tcl 的扩展。 Tcl的exec执行外部命令,捕获输出并将其作为值返回——它执行不是 除非您指示它,否则将其发送到标准输出。然而,为了方便,交互式 Tcl(或期望) session 将输出打印到标准输出。

你的脚本应该是:

puts [exec echo a]
# or
set output [exec echo a]
puts $output

我假设“echo a”是更复杂的外部命令的占位符。如果你只想打印一些东西:
puts "this is something"  ;# the Tcl way
send_user "this is too\n" ;# the expect way

如果你是 Tcl 的新手并且期望你应该 learn Tcl第一的。

关于exec 在期望脚本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721665/

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