Amazon Best VPN GoSearch

OnWorks 网站图标

zshtcpsys - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 zshtcpsys

这是命令 zshtcpsys 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


zshtcpsys - zsh tcp 系统

商品描述


一个模块 zsh/网络/TCP 提供用于从外壳内通过 TCP/IP 提供网络 I/O;
见它的描述 zsh模块(1). 本手册页描述了一个基于函数套件的
模块上。 如果安装了模块,函数通常安装在
同时,在这种情况下,它们将可用于默认功能中的自动加载
搜索路径。 除了 zsh/网络/TCP 模块, zsh/z选择 模块用于
在读取操作上实现超时。 有关故障排除提示,请参阅
相应的建议 ftp 中描述的功能 西西弗西斯(1)。

有对应基本I/O操作open、close、read和send的函数,
命名 tcp_open 等等,以及一个函数 tcp_期望 用于数据的模式匹配分析
读作输入。 该系统使得从多个接收数据和向多个发送数据变得容易
一次命名会话。 此外,它可以与 shell 的行编辑器链接
这样输入数据会自动显示在终端上。 其他设施
包括日志记录、过滤和可配置的输出提示。

要使用可用的系统,它应该足以`自动加载 -U tcp_open'和
运行 tcp_open 如下所述以启动会话。 这 tcp_open 函数将自动加载
剩下的功能。

TCP USER 职能


基础版 I / O
tcp_open [ -qz ] 主持人 端口 [ 性别 ]
tcp_open [ -qz [ -s 性别 | -l 性别[,...]] ...
tcp_open [ -qz [ -a fd | -f fd [ 性别 ]
打开一个新会话。 在第一种也是最简单的形式中,打开一个到主机的 TCP 连接
主持人 在港口 端口; 数字和符号形式都可以理解。

If 性别 给出,这成为会话的名称,可用于引用
到多个不同的 TCP 连接。 如果 性别 没有给出,函数将
发明一个数字名称值(注意这是 而不去 与文件描述符相同
会话已附加)。 建议会话名称不包括
`funny' 角色,其中有趣的角色没有明确定义,但肯定有
不包括字母数字或下划线,当然也包括空格。

在第二种情况下,要打开的一个或多个会话按名称给出。 一个
会话名称在后面给出 -s 和一个逗号分隔的列表 -l; 两种选择
可以根据需要重复多次。 无法打开任何会话导致
tcp_open 中止。 从文件中读取主机和端口 .ztcp_sessions ,在
与用户的 zsh 初始化文件相同的目录,即通常是 home
目录,但 $ZDOTDIR 如果设置了。 该文件由每行给出一个
会话名称以及相应的主机和端口,按此顺序(注意会话
名称先出现,而不是最后),以空格分隔。

第三种形式允许被动和虚假的 TCP 连接。 如果选项 -a 用来,
它的参数是一个打开用于侦听连接的文件描述符。 无功能
提供了前端来打开这样的文件描述符,但是调用`ztcp -l 端口'
将使用存储在参数中的文件描述符创建一个 $回复。 该
监听端口可以用`关闭ztcp -c fd'。 调用`tcp_open -a fd' 将要
阻塞直到建立远程 TCP 连接 端口 在本地机器上。 在这
点,会话以通常的方式创建并且在很大程度上与
使用前两种形式之一创建的活动连接。

如果是选项 -f 被使用,它的参数是一个直接使用的文件描述符
就好像它是一个 TCP 会话一样。 余下的TCP功能系统有多好
处理这个取决于这个文件描述符的实际基础。 一个普通的
文件可能无法使用; 某种 FIFO(管道)会更好地工作,但是
请注意,尝试从两个不同的会话中读取并不是一个好主意
一次使用相同的 FIFO。

如果是选项 -q 以三种形式中的任何一种给出, tcp_open 不会打印
信息性消息,尽管它在任何情况下都会以适当的方式退出
状态。

如果行编辑器 (zle) 正在使用中,这通常是 shell 的情况
交互的, tcp_open 在 zle 中安装一个处理程序,它将检查新数据
同时检查键盘输入。 这很方便,因为shell
等待时不消耗CPU时间; 测试由操作系统执行。
给出选择 -z 任何形式的 tcp_open 防止处理程序
正在安装,因此必须明确读取数据。 但是请注意,这不是
从函数执行完整的发送和读取命令集所必需的,如
zle 此时不活动。 一般来说,处理程序只处于活动状态
当 shell 在命令提示符处或在等待输入时 变化的 内置。
如果 zle 未激活,则该选项无效; `[[ -o ]]]' 将对此进行测试。

要打开的第一个会话成为当前会话,随后调用
tcp_open 不要改变它。 当前会话存储在参数中
$TCP_SESS; 有关系统使用的参数的更多详细信息,请参见下文。

该功能 tcp_on_open,如果已定义,则在打开会话时调用。 见
以下描述。

tcp_close [ -qn [ -a | -l 性别[,...] | 性别 ...]
关闭指定的会话,如果没有给出则关闭当前会话,或者全部打开
会话如果 -a 给出。 选项 -l-s 都为了一致性而处理
- tcp_open,虽然后者是多余的。

如果正在关闭的会话是当前会话, $TCP_SESS 未设置,不留下
当前会话,即使还有其他会话仍然打开。

如果会话是用 tcp_open -f, 文件描述符关闭这么久
因为它在 0 到 9 的范围内,可以直接从命令行访问。 如果
选项 -n 给出,在这种情况下不会尝试关闭文件描述符。
- -n 选项不用于正版 ztcp 会议; 文件描述符总是
会议结束。

如果是选项 -q 给出,不会打印任何信息性消息。

tcp_read [ -bdq [ -t TO [ -T TO ]
[ -a | -u fd[,...] | -l 性别[,...] | -s 性别 ...]
对当前会话或会话列表(如果有)执行读取操作
被给予 -u, -l or -s, 或者所有打开的会话,如果选项 -a 给出。 任何
-u, -l or -s 选项可以重复或混合在一起。 这 -u 选项
直接指定文件描述符(只有本系统管理的那些
有用),另外两个指定会话,如所描述的 tcp_open 以上。

该函数检查列出的所有会话中可用的新数据。 除非
-b 给定选项,它不会阻塞等待新数据。 任意一行数据
将从任何可用会话中读取,存储在参数中 $TCP_LINE,
并显示到标准输出,除非 $TCP_SILENT 包含一个非空字符串。
当打印到标准输出字符串 $TCP_PROMPT 将在开始时显示
行的; 其默认形式包括正在读取的会话的名称。
有关这些参数的更多信息,请参见下文。 在这种模式下, tcp_read
重复调用,直到它返回状态 2,该状态指示来自
所有指定的会话都已处理。

随着选项 -b,相当于无限超时,函数会阻塞
直到可以从指定的会话之一读取一行。 然而,
只返回一行。

选项 -d 表示所有挂起的输入都应该被排空。 在这种情况下
tcp_read 可以按照上面给出的方式处理多行; 只有最后一个是
存储在 $TCP_LINE,但完整的集合存储在数组中 $tcp_lines。 这
在每次调用开始时清除 tcp_read.

选项 -t-T 以秒为单位指定超时,这可能是一个浮点数
数字以提高准确性。 和 -t 在每行之前应用超时
读。 和 -T,超时适用于整个操作,可能包括
多个读取操作,如果选项 -d 存在; 没有这个选项,有
之间没有区别 -t-T.

该函数不打印信息性消息,但如果选项 -q 给出,
不存在的会话不会打印错误消息。

返回状态 2 表示超时或无数据读取。 任何其他非零
返回状态表示某些错误情况。

参见 tcp_log 如何控制发送数据的位置 tcp_read.

tcp_发送 [ -cnq [ -s 性别 | -l 性别[,...]] data ...
tcp_发送 [ -cnq ] -a data ...
将提供的数据字符串依次发送到所有指定的会话。 这
底层操作与`打印 -r' 到会话文件
描述符,尽管它试图防止外壳由于 信号管
由尝试写入已失效的会话引起。

选项 -c 原因 tcp_发送 表现得像 . 它从标准中读取行
输入直到输入结束,然后将它们准确地依次发送到指定的会话
就好像他们被赋予 data 对个人的争论 tcp_发送 命令。

选项 -n 防止 tcp_发送 从在数据末尾换行
字符串。

其余选项的行为都与 tcp_read.

数据参数一旦被传递到
tcp_发送; 他们只是简单地传递给 打印 -r.

如果参数 $TCP_输出 是一个非空字符串并启用日志记录然后
发送到每个会话的数据将被回显到日志文件中 $TCP_输出 in
在适当的情况下,以多种方式 $TCP_PROMPT.

时间 管理
tcp_别名 [ -q ] 别号=性别 ...
tcp_别名 [ -q [ 别号 ...]
tcp_别名 -d [ -q ] 别号 ...
这个功能没有经过特别好的测试。

第一种形式为会话名称创建别名; 别号 然后可以用来参考
到现有会话 性别. 可以根据需要列出尽可能多的别名。

第二种形式列出任何指定的别名,如果没有,则列出所有别名。

第三种形式删除列出的所有别名。 基础会话不是
影响。

选项 -q 抑制选择不一致的错误消息子集。

tcp_log [ -升序 [ -n | -N [ 日志文件 ]
有论据 日志文件,所有未来的输入来自 tcp_read 将被记录到
命名文件。 除非 -a (append) 给出,此文件将首先被截断或
创建为空。 不带参数,显示日志的当前状态。

随着选项 -s, 每会话日志记录已启用。 输入来自 tcp_read 是输出
到文件 日志文件.性别. 由于会话被自动识别
文件名,内容是原始的(没有 $TCP_PROMPT)。 选项 -a 如上所述。
按会话记录和将所有数据记录在一个文件中并不相互排斥。

选项 -c 关闭所有日志记录,包括完整日志和每个会话日志。

选项 -n-N 分别关闭或恢复读取数据的输出
tcp_read 到标准输出; 因此`tcp_log -cn' 关闭所有输出 tcp_read.

该函数纯粹是一个方便的前端设置参数 $TCP_日志,
$TCP_LOG_SESS, $TCP_SILENT,下面会介绍。

tcp_重命名
重命名会话 开会 . 旧名称无效。

tcp_sess [ 性别 [ 命令 [ ARG ...]]]]
不带参数,列出所有打开的会话和关联的文件描述符。 这
当前会话标有星号。 要在函数中使用,直接访问
参数 $tcp_by_name, $tcp_by_fd$TCP_SESS 可能更方便; 看
联络一位教师

随着 性别 参数,将当前会话设置为 性别。 这相当于
改变 $TCP_SESS 直。

使用附加参数,在执行时临时设置当前会话
`命令 ARG ...'. 命令 重新评估以扩展别名等,但
其余 ARGs 被传递,因为它看起来像 tcp_sess. 原始会话
恢复时 tcp_sess 退出。

先进的 I / O
tcp_命令 发送选项 ... 发送参数 ...
这是一个方便的前端 tcp_发送. 所有参数都传递给 tcp_发送,
然后函数暂停等待数据。 虽然数据至少每
$TCP_TIMEOUT (默认 0.3) 秒,数据根据
当前设置。 始终返回状态 0。

这通常仅对交互式使用有用,以防止显示变成
由连接返回的输出分段。 在程序或函数中
通过更明确的方法处理读取数据通常会更好。

tcp_期望 [ -q [ -p VAR | -P VAR [ -t TO | -T TO ]
[ -a | -s 性别 | -l 性别[,...]] 模式 ...
等待输入匹配任何给定的 模式s 来自任何指定的
会议。 输入被忽略,直到输入行匹配给定模式之一;
此时返回状态零,匹配行存储在 $TCP_LINE,
以及在调用期间读取的完整行集 tcp_期望 存储在数组中
$tcp_expect_lines.

会话的指定方式与 tcp_read: 默认是使用
当前会话,否则为指定的会话 -a, -s-l 被使用。

模式 是标准的 zsh 扩展全局模式; 请注意,它需要
引用以避免它被文件名生成立即扩展。 它必须
匹配整行,因此要匹配子字符串必须有一个`*' 在开始和
结尾。 匹配的行包括 $TCP_PROMPT 补充说 tcp_read。 这是
可能包括通配符`#b' 或`#m' 在要制作的图案中
参数中可用的反向引用 $匹配, $匹配等,如
关于模式匹配的基本 zsh 文档。

不比 tcp_read,默认行为 tcp_期望 是无限期地阻塞直到
找到所需的输入。 这可以通过指定超时来修改 -t
or -T; 这些功能如 tcp_read,指定每次读取或整体超时,
分别以秒为单位,作为整数或浮点数。 作为 tcp_read
如果发生超时,函数将返回状态 2。

只要给定的任何一种模式匹配,该函数就会返回。 如果来电者
需要知道哪个模式匹配,选项 -p VAR 可以使用; 在
返回, $变量 设置为使用普通 zsh 索引的模式编号,即
第一个是 1,依此类推。 注意没有`$' 在...前面 VAR。 避免
冲突,参数不能以`开头_预计'。 如果存在,则使用索引 -1
是超时,如果不匹配则为 0。

选项 -P VAR 工作类似 -p, 但不是数字索引
常规参数必须以前缀开头,后跟一个冒号:该前缀是 then
用作标签 VAR 当参数匹配时设置。 标签 超时 is
超时时使用,不匹配时使用空字符串。 注意它是
如果匹配,则可以接受不同的参数以相同的前缀开头
不需要区分。

选项 -q 直接传递给 tcp_read.

由于所有输入都是通过 tcp_read, 所有关于行输出的常用规则读取
申请。 一个例外是参数 $tcp_lines 只会反映这条线
实际上匹配 tcp_期望; 采用 $tcp_expect_lines 对于全套线
在函数调用期间读取。

tcp_代理
这是一个接受TCP连接并执行命令的简单函数
I/O 重定向到连接。 应格外小心,因为有
没有任何安全性,这会使您的计算机对世界开放。
理想情况下,它应该只在防火墙后面使用。

第一个参数是函数将侦听的 TCP 端口。

其余参数给出了一个命令及其参数以标准执行
输入、标准输出和标准错误重定向到文件描述符
TCP 会话已被接受。 如果没有给出命令,一个新的 zsh 是
开始了。 这使您网络上的每个人都可以直接访问您的帐户,从而
在很多情况下会是一件坏事。

该命令在后台运行,因此 tcp_代理 然后可以接受新的连接。
它继续接受新的连接,直到被中断。

tcp_垃圾邮件 [ -ertv [ -a | -s 性别 | -l 性别[,...]] CMD [ ARG ...]
执行`CMD [ ARG ... ]' 依次用于每个会话。 注意这会执行命令
和论据; 它不会将命令行作为数据发送,除非 -t (发送)
给出了选项。

可以使用标准明确选择会话 -a, -s or -l 选项,或
可以隐式选择。 如果没有给出三个选项中的任何一个,则规则是:
首先,如果数组 $tcp_spam_list 设置,这被视为会话列表,
否则所有会话都会被占用。 其次,数组中给出的任何会话
$tcp_no_spam_list 从会话列表中删除。

通常,由`添加的任何会话-a' 标志或选择所有会话时
隐含地按字母顺序发送垃圾邮件; 会议由 $tcp_spam_list
array 或在命令行上按给定的顺序发送垃圾邮件。 这 -r 旗帜反转
订单但是它到达了它。

- -v 标志指定一个 $TCP_PROMPT 将在每个会话之前输出。 这个
在任何修改后输出 TCP_SESS 由用户定义 垃圾邮件上的 TCP
功能描述如下。 (显然该函数能够生成自己的
输出。)

如果是选项 -e 存在,该行给出为`CMD [ ARG ... ]' 使用
评估, 否则不作任何进一步处理就执行。

tcp_talk
这是一个相当简单的尝试,强制输入到行编辑器去
直接到默认 TCP_SESS.

一个转义字符串, $TCP_TALK_ESCAPE, 默认`:', 用于允许访问正常
壳操作。 如果它单独出现在行首,或者只跟在后面
空格,行编辑器返回正常操作。 否则,字符串和
任何后面的空格都被跳过,该行的其余部分执行为
shell 输入,而无需更改行编辑器的操作模式。

当前的实现在命令的使用方面有些不足
历史。 出于这个原因,许多用户会更喜欢使用某种形式的替代
将数据轻松发送到当前会话的方法。 一种简单的方法是
为某些特殊字符(例如`%') 到`tcp_命令 --'.

tcp_等待
唯一的参数是一个整数或浮点数,它给出了秒数
延迟。 除了等待所有 TCP 上的输入外,shell 在此期间不会执行任何操作
通过调用会话 tcp_read -a. 这类似于在
安装 zle 处理程序时的命令提示符。

‘一击’ 文件 转让
tcp_点 端口
tcp_shoot 主持人 端口
这对函数提供了一种在两台主机之间传输文件的简单方法
壳内。 但是请注意,批量数据传输当前是使用
. tcp_点 读取任何到达的数据 端口 并将其发送到标准输出;
tcp_shoot 连接到 端口 on 主持人 并发送其标准输入。 任何未使用的 端口
可能用过了; 选择端口的标准机制是考虑随机
1024 以上的四位数字,直到一个有效。

从主机传输文件 敬主人 斯普林斯,在 斯普林斯:

tcp_点 8091 >输出文件

:

tcp_shoot 斯普林斯 8091 <输入文件

由于这两个函数不需要 tcp_open 首先建立一个TCP连接,
它们可能需要单独自动加载。

TCP 用户自定义 职能


某些函数,如果由用户定义,将被函数系统调用
某些上下文。 此功能取决于模块 zsh/参数,通常是
在交互式 shell 中可用,因为完成系统依赖于它。 没有任何一个
需要定义功能; 它们只是在必要时提供方便的钩子。

通常,在执行请求的操作后调用它们,以便各种
参数将反映新状态。

tcp_on_alias 别号 fd
定义别名时,将使用两个参数调用此函数:名称
别名的名称,以及相应会话的文件描述符。

tcp_on_awol 性别 fd
如果函数 tcp_fd_handler 正在处理来自行编辑器的输入并检测
文件描述符不再可重用,默认情况下它从
此方法处理的文件描述符列表并打印一条消息。 如果
function tcp_on_awol 定义它在这一点之前立即被调用。 它可能
返回状态100,表示正常处理应该还是
执行; 任何其他退货状态表示不应采取进一步行动
tcp_fd_handler 应该立即返回给定的状态。 通常
的动作 tcp_on_awol 将关闭会话。

变量 TCP_INVALIDATE_ZLE 如果有必要,将是一个非空字符串
使用 ` 使行编辑器显示无效le -I' 在打印输出之前
功能。

(“AWOL”是军用术语,意思是“未经许可就缺席”或某些变体。它没有
作者已知的预先存在的技术含义。)

tcp_on_close 性别 fd
这是用关闭的会话的名称和文件描述符调用的
这对应于那个会话。 到函数时两者都将无效
叫做。

tcp_on_open 性别 fd
在使用会话名称和文件定义新会话后调用此方法
描述符作为参数。 如果它返回一个非零状态,打开会话是
假设失败,会话再次关闭; 然而, tcp_open 将继续
尝试打开命令行上给出的任何剩余会话。

重命名时的 TCP 旧的 fd 新闻
在使用三个旧参数重命名会话后调用此方法
会话名称、文件描述符、新会话名称。

垃圾邮件上的 TCP 性别 命令 ...
每个垃圾邮件会话都会调用一次,只是 before 一个命令被执行
一个会话 tcp_垃圾邮件. 参数是会话名称后跟命令
要执行的列表。 如果 tcp_垃圾邮件 用选项调用 -t,第一个命令
tcp_发送.

这个函数在调用之后 $TCP_SESS 设置为反映会话
垃圾邮件,但在使用它之前。 因此可以改变值
of $TCP_SESS 在这个函数中。 例如,会话参数 tcp_垃圾邮件
可能包括要剥离和处理的额外信息 垃圾邮件上的 TCP.

如果函数设置了参数 $回复 到`完成',命令行不是
被执行; 此外,不打印提示 -v 选项 tcp_垃圾邮件.

tcp_on_unalias 别号 fd
这是使用别名和相应会话文件的名称调用的
删除别名后的描述符。

TCP UTILITY 职能


TCP 函数系统使用以下函数,但如果需要,则很少使用
要直接调用。

tcp_fd_handler
这是安装的功能 tcp_open 用于处理来自行内的输入
编辑器,如果需要的话。 它采用内置`le
-F' 在 兹什勒(1)。

激活时,该功能设置参数 TCP_HANDLER_ACTIVE 到 1. 这允许
内部调用的 shell 代码(例如,通过设置 tcp_on_read) 来判断是否是
当 shell 在编辑器提示符下空闲时被调用。

tcp_输出 [ -q ] -P 提示 -F fd -S 性别
此函数用于记录和处理输出到标准输出,从
tcp_read 而如果 $TCP_输出 设置) tcp_发送.

- 提示 使用由 -P; 默认值为空字符串。 它可以
包含:
%c 如果会话是当前会话,则扩展为 1,否则为 0。与
三元表达式,例如`%(c.-.+)'输出`+' 当前会话
和`-' 除此以外。

%f 由会话的文件描述符替换。

%s 由会话名称替换。

%% 替换为单个`%'.

选项 -q 禁止输出到标准输出,但不禁止输出到任何日志文件
被配置。

- -S-F 选项用于传递会话名称和文件描述符
提示中的可能替换。

TCP USER 有无库存


参数遵循通常的约定,即大写用于标量和整数,
而小写用于普通数组和关联数组。 用户代码总是安全的
读取这些参数。 也可以设置一些参数; 这些都被明确指出。
其他包括在该组中,因为它们是由用户的功能系统设置的
好处,即设置它们通常没有用,但是是良性的。

将可设置的参数设为函数的局部参数通常也很有用。 例如,
`本地 TCP_SILENT=1' 指定函数调用期间读取的数据不会被打印
到标准输出,无论函数外的设置如何。 同样,`本地
TCP_SESS=性别' 在函数的持续时间内设置一个会话,并且 `本地 TCP_提示='
指定在函数期间不使用提示进行输入。

tcp_expect_lines
大批。 上次调用期间读取的行集 tcp_期望, 包括
最后的 ($TCP_LINE).

tcp_过滤器
大批。 可以直接设置。 一组扩展的通配模式,如果匹配
in tcp_输出, 将导致该行不打印到标准输出。 这
模式应该按照参数的描述来定义 tcp_期望. 输出
日志文件的行不受影响。

TCP_HANDLER_ACTIVE
标量。 内设置为 1 tcp_fd_handler 指示递归调用的函数
他们是在编辑会话期间被调用的。 否则取消设置。

TCP_LINE
最后一行读取 tcp_read,因此也 tcp_期望.

TCP_LINE_FD
从中获取的文件描述符 $TCP_LINE 被读过。 ${tcp_by_fd[$TCP_LINE_FD]}
给出相应的会话名称。

tcp_线路
大批。 上次调用期间读取的行集 tcp_read,包括最后
($TCP_LINE).

TCP_LOG
可以直接设置,虽然它也被控制 tcp_log. 文件名
所有会话的输出将被发送到。 输出由
通常 $TCP_PROMPT. 如果它不是绝对路径名,它将跟随用户的
当前目录。

TCP_LOG_SESS
可以直接设置,虽然它也被控制 tcp_log. a的前缀
每个会话的输出将分别发送到的一组文件; 完整的
文件名是 ${TCP_LOG_SESS}。性别. 输出到每个文件都是原始的; 没有添加提示。
如果它不是绝对路径名,它将跟随用户的当前目录。

tcp_no_spam_list
大批。 可以直接设置。 看 tcp_垃圾邮件 这是如何使用的。

TCP_输出
可以直接设置。 如果是非空字符串,则发送到会话的任何数据 tcp_发送
将被记录。 该参数给出了在指定的文件中使用的提示
$TCP_日志 但不在生成的文件中 $TCP_LOG_SESS. 提示字符串具有
相同的格式 TCP_提示 并适用相同的使用规则。

TCP_提示
可以直接设置。 用作读取数据的前缀 tcp_read 打印出来的
到标准输出或给定的日志文件 $TCP_日志,如果有的话。 任何`%s',`%f' 或者
`%%' 出现在字符串中的将被会话的名称替换,
会话的底层文件描述符,或单个`%', 分别。 这
表达式`%c' 如果正在读取的会话是当前会话,则扩展为 1,否则
0; 这在三元表达式中最有用,例如`%(c.-.+)' 输出`+'
如果会话是当前会话,否则`-'.

如果提示以 %P,这是剥离的,完整的结果
前一阶段通过标准提示 %-样式格式化之前
输出。

TCP_READ_DEBUG
可以直接设置。 如果这具有非零长度, tcp_read 会给一些有限的
关于正在读取的数据的诊断。

TCP_SECONDS_START
该值由 tcp_open 创建并初始化为零。

功能 tcp_readtcp_期望 使用外壳的 SECONDS 他们的参数
自己的计时目的。 如果该参数在进入时不是浮点类型
函数之一,它将创建一个本地参数 SECONDS 这是漂浮的
指向并设置参数 TCP_SECONDS_START 到之前的值 $秒.
如果参数已经是浮点数,则在没有本地副本的情况下使用它
创建和 TCP_SECONDS_START 未设置。 由于全局值为零,外壳
经过的时间保证是 $秒$TCP_SECONDS_START.

这可以通过设置来避免 SECONDS 全局到一个浮点值使用
`排版 -F SECONDS'; 那么 TCP 函数将永远不会制作本地副本,也永远不会
TCP_SECONDS_START 为非零值。

TCP_SESS
可以直接设置。 当前会话; 必须参考其中一个会话
由...建立 tcp_open.

TCP_SILENT
可以直接设置,虽然它也被控制 tcp_log. 如果非零
长度,读取的数据 tcp_read 不会被写入标准输出,但可能
仍然会写入日志文件。

tcp_垃圾邮件列表
大批。 可以直接设置。 见功能说明 tcp_垃圾邮件 如何
这是使用的。

TCP_TALK_ESCAPE 协议
可以直接设置。 见功能说明 tcp_talk 这是怎么回事
用过的。

TCP_超时
可以直接设置。 目前这仅被函数使用 tcp_命令,请参阅
以上。

TCP 用户自定义 有无库存


以下参数不是由功能系统设置的,但如果有特殊效果
由用户设置。

tcp_on_read
这应该是一个关联数组; 如果不是,则行为未定义。
每个键是一个 shell 函数或其他命令的名称,以及相应的
value 是一个 shell 模式(使用 EXTENDED_GLOB)。 从 TCP 会话中读取的每一行
直接或间接使用 tcp_read (其中包括读取的行 tcp_期望)是
与模式相比。 如果该行匹配,则键中给出的命令是
使用两个参数调用:从中读取行的会话的名称,
和线路本身。

如果为处理一行而调用的任何函数返回非零状态,则该行不是
输出。 因此一个 tcp_on_read 处理程序只包含指令`回报 1' 能够
用于抑制特定行的输出(但是,请参阅 tcp_过滤器 以上)。
但是,该行仍然存储在 TCP_LINEtcp_线路; 这毕竟发生
tcp_on_read 处理。

TCP UTILITY 有无库存


这些参数由功能系统控制; 它们可以被直接读取,但是
通常不应由用户代码设置。

tcp_别名
关联数组。 键是建立的会话的名称 tcp_open;
每个值都是一个以空格分隔的别名列表,这些别名引用该会话。

tcp_by_fd
关联数组。 键是会话文件描述符; 每个值都是名称
那届会议的。

tcp_by_name
关联数组。 键是会话的名称; 每个值都是文件
与该会话关联的描述符。

TCP 示例


这是一个使用远程计算器的简单示例。

要在端口 7337 上创建计算器服务器(请参阅 dc 手册页相当如何
激怒底层命令是):

tcp_代理 7337 dc

要从同一台主机连接到这个,会话也名为`dc':

tcp_open 本地 7337 dc

向远程会话发送命令并等待输出(假设 dc is
当前会话):

tcp_命令 2 4 + p

要关闭会话:

tcp_close

- tcp_代理 需要被杀死才能停止。 请注意,这通常不会杀死任何
已经被接受的连接,并且端口不是立即
可重复使用。

以下代码块将会话列表放入 xterm 标头中,当前
会话后跟一颗星。

打印 -n "\033]2;TCP:" ${(k)tcp_by_name:/$TCP_SESS/$TCP_SESS\*} “\一种”

TCP BUGS


该功能 tcp_read 使用外壳的正常 内置。 由于这读取了完整的一行
立即,没有终止换行符的数据可能会导致函数阻塞
无限期。

尽管函数套件适用于交互式使用和小数据到达
量,交换大量数据时的性能可能是
极穷。

使用 onworks.net 服务在线使用 zshtcpsys


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。