gpt4 book ai didi

linux - 如何获取expect访问的ssh命令的返回值?

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:21 27 4
gpt4 key购买 nike

在我使用 expect 访问 ssh 并在其中运行特定命令之后。我如何获得该命令的实际返回值并将其设置为期望的返回值或环境变量(更好)?

我对 expect 不是很熟悉,所以几行代码来说明捕获的工作原理会有很大帮助。非常感谢。

最佳答案

您可以像坐在终端前一样执行此操作:echo $?(我假设您的远程 shell 是 sh/ksh/bash/...)

#!/usr/bin/expect -f

set host remote_host
set user remote_username
set prompt {\$ $}
set cmd {grep not-found /etc/passwd}

log_user 0
spawn ssh -l $user $host
expect -re $prompt

send "$cmd\r"
expect -re $prompt
send -- "echo \$?\r"
expect -re "\r\n(\\d+)\r\n.*$prompt"

set rc $expect_out(1,string)

send -- "exit\r"
expect eof

puts "return code from '$cmd' on $host = $rc"

关于linux - 如何获取expect访问的ssh命令的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26128153/

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