在spawn之后如何在expect shell脚本中获取子进程pid

Yan*_*ang 5 shell expect spawn

脚本a.exp的一部分:

#!/usr/bin/expect
# ..... 
spawn ssh -qTfnN -D $port $user@$host
expect "*assword:*"
# .....
Run Code Online (Sandbox Code Playgroud)

如何获得子进程"ssh" 的pid.

如果我在bash shell中执行这些操作,而不是在脚本文件中执行,结果是

expect1.1> spawn ssh name@host
spawn ssh name@host
2188
expect1.2> 
Run Code Online (Sandbox Code Playgroud)

2188是子流程pid.

如何在expect shell中使用exp_pid命令?

jco*_*ado 6

我认为你正在寻找的是这样的:

spawn ssh name@host
set pid [exp_pid]
puts "PID: $pid"
Run Code Online (Sandbox Code Playgroud)