如何解决将 netcat 输出发送到光标位置
我有一个连接到本地网络的设备,该设备将一个字符串发送到运行 Debian 的 PC(连接到同一网络)的特定端口。在这台 PC 上,我需要将该字符串放在光标位置(例如,在打开的文本编辑器中)。
我可以用这个命令从终端读取字符串
nc -l -p 8888
但我想不出将字符串放到光标位置的方法。
经过测试,我希望它成为一个在后台保持活动状态的服务
感谢任何有建议的人。
编辑:
按照 JoseLinares 的建议,我尝试使用命令将 netcat 输出复制到剪贴板
nc -l -p 8888 | xclip
然后我尝试将其粘贴到文本编辑器中,但没有任何反应。 使用 echo 命令 (echo "something" | xclip) 它可以工作。
另一件奇怪的事情,如果将输出发送到文件 (nc -l -p 8888 > test) 并使用“nano”编辑器打开该文件,我会看到该值,但是如果我尝试使用“cat”打开它是空的。
解决方法
您可以使用 xclip 将 nc 的输出保存在剪贴板中:
nc -l -p 8888 | xclip
然后使用xdotool模拟鼠标中键的点击。这将导致在大多数桌面管理器中复制光标位置的剪贴板内容:
xdotool click 2
2 是中间按钮的id
,tcut cup
提供的 ncurses
命令允许您将终端光标移动到屏幕上的任何位置(0,0 为左上角)。
您可以这样使用它,例如:
nc -k -l 8888 \
| while read -r line; do
tput cup 5 5
printf '%s ' "$line"
done
此处 nc
在端口 8888
上接收到的所有内容都被写入位置 (5,5) 处的终端。
注 1:netcat
(nc
) 有多个版本。您的可能没有 -k
开关(= 第一次连接结束后不要死)。
注意 2:您提到了一项服务。服务通常不绑定到终端,但您可以打开一个(man openvt
)或将上面的命令重定向到现有的一个(例如 > /dev/tty1
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。