如何保存来自 telnet 脚本的响应



>我已经让我的脚本可以连接,登录和运行命令。但是我陷入了困境,因为我如何在不保存整个会话的情况下将命令的响应保存到文件中。

#!/bin/sh
Var=1
while [ $Var -lt 20 ]
do
HOST='IPa.ddr.ess.'$Var
USER='MyUser'
PASSWD='MyPassword'
CMD='MyCommand'
(
    echo open "$HOST"
    sleep 1
    echo "$USER"
    sleep 1
    echo "$PASSWD"
    sleep 1
    echo "$CMD"
    #I want to save the output from my $cmd to an varaible $Output
    #Then I want to write "$HOST - $Output" to a file named "output.txt"
    sleep 2
    echo "exit"
    ) | telnet
Var=$((Var + 1))
done

我将不胜感激任何帮助,或指向正确方向的指示

好吧,这看起来比我最初想象的更具挑战性。我喜欢它:-)

#!/bin/sh
Var=1
while [ $Var -lt 20 ]
do
HOST='IPa.ddr.ess.'$Var
USER='MyUser'
PASSWD='MyPassword'
CMD='MyCommand'
MARKER='XXXX1234:AUIE'
(echo "$HOST - " ; (
    echo unset echo
    echo open "$HOST"
    sleep 1
    echo "$USER"
    sleep 1
    echo "$PASSWD"
    sleep 1
    echo echo "$MARKER"
    echo "$CMD"
    #I want to save the output from my $cmd to an varaible $Output
    #Then I want to write "$HOST - $Output" to a file named "output.txt"
    sleep 2
    echo "exit"
    ) | telnet | sed -e "1,/$MARKER/d" ) >> output.txt
Var=$((Var + 1))
done

这样做的是:

  • 它禁用远程登录中的回显
  • 登录会话后,它会打印一个标记
  • 标记保存到输出后的任何内容.txt
  • 我渗入了另一个外壳,它将打印"$HOST -"部分

最新更新