温馨提示×

Linux telnet命令如何处理重定向

小樊
57
2025-08-02 22:41:37
栏目: 智能运维

在 Linux 中,telnet 命令本身不支持重定向。但是,你可以使用管道(pipe)和子进程来实现类似的功能。这里有一个例子,说明如何将 telnet 命令的输出重定向到一个文件:

#!/bin/bash

# 将 telnet 命令的输出重定向到 output.txt 文件
{
  echo "open example.com 23"
  sleep 1
  echo "your_username"
  sleep 1
  echo "your_password"
  sleep 1
  echo "your_command_here"
  sleep 1
  echo "quit"
} | telnet localhost 23 > output.txt

这个脚本首先创建了一个包含 telnet 命令及其参数的子进程,然后将其输出重定向到名为 output.txt 的文件。请注意,你需要根据实际情况替换 example.com、端口、用户名、密码和要执行的命令。

然而,这种方法可能存在安全风险,因为你的用户名和密码可能会被存储在脚本中。一个更安全的方法是使用 expect 工具,它可以自动与交互式程序进行通信。以下是一个使用 expect 的示例:

#!/usr/bin/expect -f

set timeout 20
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set command [lindex $argv 3]

spawn telnet $host 23
expect "login:"
send "$username\r"
expect "Password:"
send "$password\r"
expect "$ "
send "$command\r"
expect "$ "
send "quit\r"
interact

将此脚本保存为 telnet_auto.sh,并确保它具有可执行权限(使用 chmod +x telnet_auto.sh)。然后,你可以通过以下方式运行脚本:

./telnet_auto.sh example.com your_username your_password "your_command_here"

这将在不暴露用户名和密码的情况下自动执行 telnet 命令。

0