![socat 的 shell 命令包装器](https://linux22.com/image/82692/socat%20%E7%9A%84%20shell%20%E5%91%BD%E4%BB%A4%E5%8C%85%E8%A3%85%E5%99%A8.png)
我已经使用了命令
socat - foo
我输入的文本会直接发送到地址 foo。是否有一些标准输入的通用包装器(沿着!
ed 的行)可以让人们解析 shell 命令,然后将命令的输出发送到 foo ?
答案1
好吧,你可以这样做:
ls | socat - foo
或者:
ls | socat -u - foo
foo
如果您不期望从.返回任何内容。
或者通过socat
产卵ls
:
socat exec:ls foo
如果你的意思是你想在运行时运行一个命令
socat - foo
在终端中并将输出发送到 foo ,然后在 GNU 中screen
,您可以使用:Ctrl+A:exec .!. ls
它将运行ls
并使screen
输出ls
作为输入,就像在键盘上键入一样。
或者你可以这样做(使用 GNU sed
):
sed 's/^!//e' | socat - foo
!
任何以, like开头的输入!echo test
都将被替换为 后命令的输出!
。
答案2
是否有一些标准输入的通用包装器...可以让人们解析 shell 命令,然后将命令的输出发送到 foo ?
或许这会对你有所启发:
$ echo pwd | sh
/
$ echo pwd | sh | wc
1 1 2
sh 是一个过滤器。它可以读取标准输入上的命令,运行它们,并在标准输出上发出它们的输出。