功能块 FS_SHELL

功能块 FS_SHELL 在交互式 Shell 中执行一个或多个远程命令。

注意: 系统命令可能会危害或损坏远程系统。此外,现有文件可能会在没有警告的情况下被覆盖。

必须使用 FS_INIT 初始化文件系统。所有操作都是异步执行的,每个存储介质一个。

输入 RUN

在正边沿时,会执行指定的命令。

输入 DEV

定义要访问哪些文件的设备。该设备用于项目,并可以在上下文菜单中通过 项目 外部存储 进行管理。

输入 PATH

指定存储介质上的目录路径。如果支持,该路径对应于 UTF-8 格式的 Unix 文件路径。路径如下所示:

Ordner/Unterordner

使用路径是可选的。如果设置了路径,则必须成功切换到该目录,否则不会执行要执行的命令。

输入 CMD

定义所有要执行的命令。所有命令都必须通过行尾终止。例如:"ls\n"。如果未使用行尾,则命令可能不会被执行。命令会在服务器返回响应后逐行执行。

在执行所有命令后,应该在末尾发送 "exit\n",以立即终止连接并返回值。之后不应再发送任何命令,否则输出 ERROR 将被设置为 TRUE

提示: 如果连接意外终止且未发送命令,则输出 ERROR 将被设置为 TRUE

输入 PTY

定义控制台类型(伪终端)。对于某些设备,此参数是强制性的。示例:"vanilla""exec""vt100""vt102""ansi""xterm" 等。如果未定义任何值,则使用 "vanilla"

"exec" 通过操作系统的 SSH 命令执行请求。因此,使用了更现代化的方法。但是,此方法效率较低。输入 ENV 在连接前设置,因此可能会被忽略。输入 SIZE 在这种情况下将被忽略。

如果必须传递其他 SSH 参数,可以在 "exec" 之后的新行中添加它们。参数区分大小写,并如下例所示指定。此示例为旧设备启用了 RSA 算法。

exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa

以下参数可供使用:

exec 的 SSH 参数 示例值
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

提示: 有关详细信息,请参阅外部文档:https://linux.die.net/man/5/ssh_config(英文)

输入 ENV

定义活动的环境变量。可以每行定义一个变量。示例:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

输入 SIZE

定义终端的大小。默认情况下,此值以字符指定,但也可以以像素定义。例如:"80x25""640x480px"。如果未定义任何值,则使用 "80x25"

输入 RECV_PT

以格式 T# 定义每个命令接收数据的超时时间。如果未定义任何超时时间,则使用 T#150ms。如果此值不够高,则可能在输出数据期间执行多个命令。

输入 TIMEOUT

以格式 T# 设置执行所有命令的超时时间。达到此值后,连接将被终止并返回值。此时 ERROR 被设置为 TRUE。在建立连接和身份验证之后评估超时时间。如果输入 PTY 设置为 "exec",则执行时间将评估整个期间。如果未定义任何超时时间,则使用 T#300s

输出 DONE

在成功的情况下,输出返回一个脉冲以执行下一个操作。即使发生错误,脉冲也会在操作结束时发生。

输出 RETURN

在成功执行后返回命令的返回值。该值将被保存以供稍后使用。

提示: 请注意,控制台会格式化输出。因此,可能包含控制字符或二进制数据。

输出 RETERR

在执行失败时返回命令的返回值。对于 SSH,也称为 STDERR。该值将被保存以供稍后使用。

提示: 请注意,控制台会格式化输出。因此,可能包含控制字符或二进制数据。

输出 ERROR

在发生错误的情况下返回一个带有错误消息的文本。如果未发生任何错误,则为 FALSE。该状态将被保存以供稍后使用。

可能原因:

  • 存储介质的服务未启动。
  • 存储器未初始化。
  • 登录凭据无效。
  • 无法访问远程服务器。
  • 存储介质不存在。
  • 指定的路径无效。
  • 无法写入存储介质。
  • 存储器上没有可用空间或存储器已写保护。
  • 连接意外终止,在发送所有命令之前。
  • 达到定义的超时时间。

另见