通过telnet连接netcat并关闭电脑

Connect to netcat through telnet and shut down computer

我正在使用以下 bash 脚本开始侦听端口 8585 上的连接。当通过 telnet 连接并发送文本时 "shutdown" 我希望主机关闭。截至目前,我正在使用我的 mac.

#!/bin/bash

echo "Start listening on port 8585..."
while read line
do
    if [ "$line" == 'shutdown' ]; then
        # Execute shutdown now on the computer.
        break
    else
        echo "$line"
    fi
done < <((echo "Welcome.") | nc -k -l 8585)
echo "Good bye"

当我尝试通过 telnet 连接到它时,我得到的响应是:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome.
Connection closed by foreign host.

你们中有人知道为什么连接会立即关闭吗?你有什么想法吗?

我从这里得到示例代码:https://askubuntu.com/questions/873788/bash-read-lines-from-netcat-connection#873794

删除 (echo "Welcome.") |:

#!/bin/bash

echo "Start listening on port 8585..."
while read line
do
    if [ "$line" == 'shutdown' ]; then
        # Execute shutdown now on the computer.
        break
    else
        echo "$line"
    fi
done < <(nc -k -l 8585)
echo "Good bye"

请记住,只会用单词 shutdown 打破循环,但 nc 会继续收听