gpt4 book ai didi

bash - 捕获期望的 ssh 输出到变量

转载 作者:行者123 更新时间:2023-11-29 09:05:30 26 4
gpt4 key购买 nike

嘿,我是 bash 脚本的新手,想知道如何将 ssh 命令的输出捕获到 bash 变量中?我环顾四周,似乎无法正确处理。我试过 puts $expect_out(buffer) 但是当 echo 它说变量不存在

我知道响应应该只有一行,如果我想将其保存到变量 response 中,然后 echo 我该怎么做?

最佳答案

一个通用的想法可以像下面这样。

  1. spawn ssh session
  2. 正确登录
  3. 使用send 发送每个命令
  4. 使用expect等待期望的输出

例子:

spawn ssh $user@$domain
expect "password" { send "$pwd\r"}
expect "#"; # This '#' is nothing but the terminal prompt
send "$cmd\r"
expect "#"
puts $expect_out(buffer); #Will print the output of the 'cmd' output now.

执行命令后等待的单词可能因您的系统而异。它可以是#$>:;因此,请确保您提供的是正确的。或者,您可以为提示提供通用模式

set prompt "#|>|:|\\\$"; # We escaped the `$` symbol with backslash to match literal '$'

在发送命令后使用expect时,它可以用作

expect -re $prompt; #Using regex to match the pattern`

关于bash - 捕获期望的 ssh 输出到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002622/

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