围绕 nc 命令编写的 bash 脚本。如何在每行前添加文本?
A bash script written around the nc command. How do I prepend text before each line?
我正在以一种不寻常的方式使用 nc 命令。我有两个 bash 脚本,如果两个用户 运行 他们几乎同时启动聊天会话。这些脚本是围绕 nc 命令构建的。我希望文本流显示每个回车符后附加的值 return(当用户按回车键时)。
以下是脚本交互和协同工作的方式:
在工作站 1 上,我调用这个:nc -l 44444
在工作站 2 上,其他人调用此命令:nc x.x.x.x 44444
(其中 x.x.x.x 是工作站 1 的 IP 地址)
我可以和别人闲聊。无论哪种用户类型都将镜像到另一个终端。我的问题:如何编写 bash 脚本来附加文本?我在变量中有我想要的文本(例如,"said user1")。
我希望它自动显示(无需用户手动输入)。
如果工作站 1 上的用户(IP 地址 x.x.x.x)在聊天会话期间键入 "this is just a test" 并按回车键,我希望结果如下:
这只是用户 1 所说的测试。
如果工作站 2 上的用户(具有 IP 地址 y.y.y.y)在聊天会话期间键入 "oh, ok" 并按回车键,我希望这是结果:
哦,好的,user2 说。
用户名在脚本的变量中。我可以毫无问题地构造字符串。我只是不知道如何让这个可变字符串自动显示。仅当脚本 运行ning 时,每次按回车键时是否可以显示一些文本?当 bash 脚本是 运行ning 时,文本流被镜像。我不确定如何完成此操作。
试试这个:
sed -u "s/$/said user2 /" | nc xxx.xxx.xxx.xxx 44444
sed -u "s/$/ said user1 /" | nc -l 44444
当nc
以交互方式运行ning时(即运行ning作为前台作业),其标准输入连接到终端,而Bash不能'也不要向它发送输入。恕我直言,最简单的方法是(对于每一行)读取 Bash 中的输入并在那里添加后缀,然后将它们都通过管道传递给 nc
.
的新调用
请记住,当从标准输入读取时,nc
将忽略文件结尾 (EOF),请参阅 nc(1)
。 -q
选项告诉 nc
在客户端的 EOF 后关闭连接,你可以在服务器端循环 运行 nc -l
。
我正在以一种不寻常的方式使用 nc 命令。我有两个 bash 脚本,如果两个用户 运行 他们几乎同时启动聊天会话。这些脚本是围绕 nc 命令构建的。我希望文本流显示每个回车符后附加的值 return(当用户按回车键时)。
以下是脚本交互和协同工作的方式: 在工作站 1 上,我调用这个:nc -l 44444
在工作站 2 上,其他人调用此命令:nc x.x.x.x 44444 (其中 x.x.x.x 是工作站 1 的 IP 地址)
我可以和别人闲聊。无论哪种用户类型都将镜像到另一个终端。我的问题:如何编写 bash 脚本来附加文本?我在变量中有我想要的文本(例如,"said user1")。
我希望它自动显示(无需用户手动输入)。
如果工作站 1 上的用户(IP 地址 x.x.x.x)在聊天会话期间键入 "this is just a test" 并按回车键,我希望结果如下:
这只是用户 1 所说的测试。
如果工作站 2 上的用户(具有 IP 地址 y.y.y.y)在聊天会话期间键入 "oh, ok" 并按回车键,我希望这是结果:
哦,好的,user2 说。
用户名在脚本的变量中。我可以毫无问题地构造字符串。我只是不知道如何让这个可变字符串自动显示。仅当脚本 运行ning 时,每次按回车键时是否可以显示一些文本?当 bash 脚本是 运行ning 时,文本流被镜像。我不确定如何完成此操作。
试试这个:
sed -u "s/$/said user2 /" | nc xxx.xxx.xxx.xxx 44444
sed -u "s/$/ said user1 /" | nc -l 44444
当nc
以交互方式运行ning时(即运行ning作为前台作业),其标准输入连接到终端,而Bash不能'也不要向它发送输入。恕我直言,最简单的方法是(对于每一行)读取 Bash 中的输入并在那里添加后缀,然后将它们都通过管道传递给 nc
.
请记住,当从标准输入读取时,nc
将忽略文件结尾 (EOF),请参阅 nc(1)
。 -q
选项告诉 nc
在客户端的 EOF 后关闭连接,你可以在服务器端循环 运行 nc -l
。